FNFT
Loading...
Searching...
No Matches
fnft__nse_scatter.h
Go to the documentation of this file.
1/*
2* This file is part of FNFT.
3*
4* FNFT is free software; you can redistribute it and/or
5* modify it under the terms of the version 2 of the GNU General
6* Public License as published by the Free Software Foundation.
7*
8* FNFT is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16* Contributors:
17* Sander Wahls (TU Delft) 2017-2018, 2020.
18* Shrinivas Chimmalgi (TU Delft) 2017.
19* Peter J Prins (TU Delft) 2020.
20* Sander Wahls (KIT) 2023.
21*/
22
29#ifndef FNFT__NSE_SCATTER_H
30#define FNFT__NSE_SCATTER_H
31
33#include "fnft__akns_scatter.h"
34#include <stdio.h>
35#include "fnft__misc.h"
36#include <string.h> // for memcpy
37#include "fnft__errwarn.h"
38
84 FNFT_COMPLEX const * const q,
85 FNFT_COMPLEX const * const r,
86 FNFT_REAL const * const T,
87 FNFT_UINT const K,
88 FNFT_COMPLEX * const bound_states,
89 FNFT_COMPLEX * const a_vals,
90 FNFT_COMPLEX * const aprime_vals,
91 FNFT_COMPLEX * const b,
92 FNFT_INT * const Ws,
93 fnft_nse_discretization_t const discretization,
94 FNFT_UINT const skip_b_flag);
95
137 FNFT_COMPLEX const * const q,
138 FNFT_COMPLEX const * const r,
139 const FNFT_REAL eps_t,
140 const FNFT_INT kappa,
141 const FNFT_UINT K,
142 FNFT_COMPLEX const * const lambda,
143 FNFT_COMPLEX * const result,
144 FNFT_INT * const W,
145 fnft_nse_discretization_t const discretization,
146 const FNFT_UINT derivative_flag);
147
148#ifdef FNFT_ENABLE_SHORT_NAMES
149#define nse_scatter_bound_states(...) fnft__nse_scatter_bound_states(__VA_ARGS__)
150#define nse_scatter_matrix(...) fnft__nse_scatter_matrix(__VA_ARGS__)
151#endif
152
153#endif
Slow forward scattering.
Miscellaneous functions used in the FNFT library.
Properties of the discretizations for the nonlinear Schroedinger equation.
fnft_nse_discretization_t
Enum that specifies discretizations and methods used to compute nonlinear Fourier transforms for the ...
Definition fnft_nse_discretization_t.h:104
FNFT_INT fnft__nse_scatter_bound_states(FNFT_UINT const D, FNFT_COMPLEX const *const q, FNFT_COMPLEX const *const r, FNFT_REAL const *const T, FNFT_UINT const K, FNFT_COMPLEX *const bound_states, FNFT_COMPLEX *const a_vals, FNFT_COMPLEX *const aprime_vals, FNFT_COMPLEX *const b, FNFT_INT *const Ws, fnft_nse_discretization_t const discretization, FNFT_UINT const skip_b_flag)
Computes , and for complex values assuming that they are very close to the true bound-states.
FNFT_INT fnft__nse_scatter_matrix(const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_COMPLEX const *const r, const FNFT_REAL eps_t, const FNFT_INT kappa, const FNFT_UINT K, FNFT_COMPLEX const *const lambda, FNFT_COMPLEX *const result, FNFT_INT *const W, fnft_nse_discretization_t const discretization, const FNFT_UINT derivative_flag)
Computes the scattering matrix and its derivative.
size_t FNFT_UINT
Definition fnft_numtypes.h:62
double complex FNFT_COMPLEX
Definition fnft_numtypes.h:47
int32_t FNFT_INT
Definition fnft_numtypes.h:56
double FNFT_REAL
Definition fnft_numtypes.h:40