FNFT
fnft__kdv_fscatter.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.
18 * Peter J Prins (TU Delft) 2018
19 */
20 
29 #ifndef FNFT__KDV_FSCATTER_H
30 #define FNFT__KDV_FSCATTER_H
31 
33 #include "fnft__akns_fscatter.h"
34 
47  fnft_kdv_discretization_t discretization);
48 
71  const FNFT_REAL eps_t, const FNFT_REAL q);
72 
105 FNFT_INT fnft__kdv_fscatter(const FNFT_UINT D, FNFT_COMPLEX const * const q,
106  const FNFT_REAL eps_t, FNFT_COMPLEX * const result, FNFT_UINT * const deg_ptr,
107  INT * const W_ptr, fnft_kdv_discretization_t discretization);
108 
109 #ifdef FNFT_ENABLE_SHORT_NAMES
110 #define kdv_fscatter_numel(...) fnft__kdv_fscatter_numel(__VA_ARGS__)
111 #define kdv_fscatter(...) fnft__kdv_fscatter(__VA_ARGS__)
112 #endif
113 
114 #endif
FNFT_INT
int32_t FNFT_INT
Definition: fnft_numtypes.h:56
FNFT_UINT
size_t FNFT_UINT
Definition: fnft_numtypes.h:62
fnft__kdv_fscatter_numel
FNFT_UINT fnft__kdv_fscatter_numel(FNFT_UINT D, fnft_kdv_discretization_t discretization)
Returns the length of transfer_matrix to be allocated based on the number of samples and discretizati...
fnft__akns_fscatter.h
Computes the polynomial approximation of the combined scattering matrix.
fnft_kdv_discretization_t
fnft_kdv_discretization_t
Enum that specifies discretizations used to compute nonlinear Fourier transforms for the Korteweg-de ...
Definition: fnft_kdv_discretization_t.h:92
fnft__kdv_discretization.h
Properties of the discretizations for the Korteweg-de Vries equation.
fnft__kdv_fscatter_zero_freq_scatter_matrix
FNFT_INT fnft__kdv_fscatter_zero_freq_scatter_matrix(FNFT_COMPLEX *M, const FNFT_REAL eps_t, const FNFT_REAL q)
Returns the scattering matrix for a single step at frequency zero.
fnft__kdv_fscatter
FNFT_INT fnft__kdv_fscatter(const FNFT_UINT D, FNFT_COMPLEX const *const q, const FNFT_REAL eps_t, FNFT_COMPLEX *const result, FNFT_UINT *const deg_ptr, INT *const W_ptr, fnft_kdv_discretization_t discretization)
Fast computation of polynomial approximation of the combined scattering matrix.
FNFT_COMPLEX
double complex FNFT_COMPLEX
Definition: fnft_numtypes.h:47
FNFT_REAL
double FNFT_REAL
Definition: fnft_numtypes.h:40