FNFT
Loading...
Searching...
No Matches
fnft__akns_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, 2023.
18* Shrinivas Chimmalgi (TU Delft) 2017-2020.
19* Peter J. Prins (TU Delft) 2021.
20* Sander Wahls (KIT), 2023.
21*/
22
29#ifndef FNFT__AKNS_SCATTER_H
30#define FNFT__AKNS_SCATTER_H
31
33#include <stdio.h>
34#include <string.h> // for memcpy
35#include "fnft__errwarn.h"
36#include "fnft__misc.h"// for square_matrix_mult
37
38
81 FNFT_COMPLEX const * const q,
82 FNFT_COMPLEX const * const r,
83 FNFT_REAL const eps_t,
84 FNFT_UINT const K,
85 FNFT_COMPLEX const * const lambda,
86 FNFT_COMPLEX * const result,
87 FNFT_INT * const W,
88 fnft__akns_discretization_t discretization,
89 fnft__akns_pde_t const PDE,
90 FNFT_UINT const vanilla_flag,
91 FNFT_UINT const derivative_flag);
92
93
145 FNFT_COMPLEX const * const q,
146 FNFT_COMPLEX const * const r,
147 FNFT_REAL const *const T,
148 FNFT_UINT const K,
149 FNFT_COMPLEX const * const bound_states,
150 FNFT_COMPLEX * const a_vals,
151 FNFT_COMPLEX * const aprime_vals,
152 FNFT_COMPLEX * const b_vals,
153 FNFT_INT * Ws,
154 fnft__akns_discretization_t const discretization,
155 fnft__akns_pde_t const PDE,
156 FNFT_UINT const vanilla_flag,
157 FNFT_UINT const skip_b_flag);
158
159#ifdef FNFT_ENABLE_SHORT_NAMES
160#define akns_scatter_matrix(...) fnft__akns_scatter_matrix(__VA_ARGS__)
161#endif
162
163#endif
Properties of the discretizations for the Korteweg-de Vries equation.
FNFT_INT fnft__akns_scatter_matrix(FNFT_UINT const D, FNFT_COMPLEX const *const q, FNFT_COMPLEX const *const r, FNFT_REAL const eps_t, FNFT_UINT const K, FNFT_COMPLEX const *const lambda, FNFT_COMPLEX *const result, FNFT_INT *const W, fnft__akns_discretization_t discretization, fnft__akns_pde_t const PDE, FNFT_UINT const vanilla_flag, FNFT_UINT const derivative_flag)
Computes the scattering matrix and its derivative.
FNFT_INT akns_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 *const bound_states, FNFT_COMPLEX *const a_vals, FNFT_COMPLEX *const aprime_vals, FNFT_COMPLEX *const b_vals, FNFT_INT *Ws, fnft__akns_discretization_t const discretization, fnft__akns_pde_t const PDE, FNFT_UINT const vanilla_flag, FNFT_UINT const skip_b_flag)
Computes , and for complex values assuming that they are very close to the true bound-states.
Miscellaneous functions used in the FNFT library.
fnft__akns_pde_t
Enum that specifies partial differential equations for which the nonlinear Fourier transform can be c...
Definition fnft__akns_discretization_t.h:149
fnft__akns_discretization_t
Enum that specifies discretizations used to compute nonlinear Fourier transforms of systems that fit ...
Definition fnft__akns_discretization_t.h:104
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