FNFT
Loading...
Searching...
No Matches
fnft__kdv_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.
19* Peter J Prins (TU Delft) 2020.
20* Sander Wahls (KIT) 2023.
21*/
22
29#ifndef FNFT__KDV_SCATTER_H
30#define FNFT__KDV_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
85 FNFT_COMPLEX const * const r, FNFT_REAL const * const T, FNFT_UINT const K,
86 FNFT_COMPLEX * const bound_states, FNFT_COMPLEX * const a_vals,
87 FNFT_COMPLEX * const aprime_vals, FNFT_COMPLEX * const b, FNFT_INT * const Ws,
88 fnft_kdv_discretization_t const discretization, FNFT_UINT const skip_b_flag);
89
131 FNFT_COMPLEX const * const q, FNFT_COMPLEX const * const r,
132 const FNFT_REAL eps_t, const FNFT_INT kappa, const FNFT_UINT K,
133 FNFT_COMPLEX const * const lambda, FNFT_COMPLEX * const result,
134 FNFT_INT * const W, fnft_kdv_discretization_t const discretization,
135 const FNFT_UINT derivative_flag);
136
137#ifdef FNFT_ENABLE_SHORT_NAMES
138#define kdv_scatter_bound_states(...) fnft__kdv_scatter_bound_states(__VA_ARGS__)
139#define kdv_scatter_matrix(...) fnft__kdv_scatter_matrix(__VA_ARGS__)
140#endif
141
142#endif
Slow forward scattering.
Properties of the discretizations for the Korteweg-de Vries equation.
Miscellaneous functions used in the FNFT library.
fnft_kdv_discretization_t
Enum that specifies discretizations and methods used to compute nonlinear Fourier transforms for the ...
Definition fnft_kdv_discretization_t.h:116
FNFT_INT fnft__kdv_scatter_bound_states(const FNFT_UINT 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_kdv_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__kdv_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_kdv_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