FNFT
Loading...
Searching...
No Matches
fnft_nsev_inverse.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) 2018.
18 */
19
27#ifndef FNFT_NSEV_INVERSE_H
28#define FNFT_NSEV_INVERSE_H
29
30#include "fnft__errwarn.h"
31#include "fnft__nse_fscatter.h"
32#include "fnft__poly_chirpz.h"
34#include "fnft__fft_wrapper.h"
35#include "fnft__poly_specfact.h"
36#include "fnft__misc.h"
37#include "fnft__nse_scatter.h"
38
58typedef enum {
59 fnft_nsev_inverse_cstype_REFLECTION_COEFFICIENT,
60 fnft_nsev_inverse_cstype_B_OF_XI,
61 fnft_nsev_inverse_cstype_B_OF_TAU
63
76typedef enum {
77 fnft_nsev_inverse_dstype_NORMING_CONSTANTS,
78 fnft_nsev_inverse_dstype_RESIDUES
80
108typedef enum {
109 fnft_nsev_inverse_csmethod_DEFAULT,
110 fnft_nsev_inverse_csmethod_TFMATRIX_CONTAINS_REFL_COEFF,
111 fnft_nsev_inverse_csmethod_TFMATRIX_CONTAINS_AB_FROM_ITER,
112 fnft_nsev_inverse_csmethod_USE_SEED_POTENTIAL_INSTEAD
114
115
156typedef struct {
164
182
202 const FNFT_UINT D,
203 FNFT_REAL const * const T,
204 const FNFT_UINT M,
205 FNFT_REAL * const XI,
206 const fnft_nse_discretization_t discretization);
207
276 const FNFT_UINT M,
277 FNFT_COMPLEX * const contspec,
278 FNFT_REAL const * const XI,
279 FNFT_UINT const K,
280 FNFT_COMPLEX const * const bound_states,
281 FNFT_COMPLEX const * const normconsts_or_residues,
282 const FNFT_UINT D,
283 FNFT_COMPLEX * const q,
284 FNFT_REAL const * const T,
285 const FNFT_INT kappa,
286 fnft_nsev_inverse_opts_t *opts_ptr);
287
288#endif
Wraps underlying FFT library.
Miscellaneous functions used in the FNFT library.
Recovers the signal from a scattering matrix.
Computes the polynomial approximation of the combined scattering matrix.
Slow forward scattering.
Fast evaluation of polynomials using the Chirp Z-transform.
Spectral factorization of polynomials.
fnft_nsev_inverse_csmethod_t
Definition fnft_nsev_inverse.h:108
fnft_nsev_inverse_cstype_t
Definition fnft_nsev_inverse.h:58
fnft_nsev_inverse_dstype_t
Definition fnft_nsev_inverse.h:76
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_nsev_inverse_opts_t fnft_nsev_inverse_default_opts()
Creates a new options variable for fnft_nsev_inverse with default settings.
FNFT_INT fnft_nsev_inverse_XI(const FNFT_UINT D, FNFT_REAL const *const T, const FNFT_UINT M, FNFT_REAL *const XI, const fnft_nse_discretization_t discretization)
Determines the locations of the first and last sample of the grid that has to be used when providing ...
FNFT_INT fnft_nsev_inverse(const FNFT_UINT M, FNFT_COMPLEX *const contspec, FNFT_REAL const *const XI, FNFT_UINT const K, FNFT_COMPLEX const *const bound_states, FNFT_COMPLEX const *const normconsts_or_residues, const FNFT_UINT D, FNFT_COMPLEX *const q, FNFT_REAL const *const T, const FNFT_INT kappa, fnft_nsev_inverse_opts_t *opts_ptr)
Fast inverse nonlinear Fourier transform for the nonlinear Schroedinger equation with vanishing bound...
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
Stores additional options for the routine fnft_nsev_inverse.
Definition fnft_nsev_inverse.h:156
fnft_nsev_inverse_cstype_t contspec_type
Definition fnft_nsev_inverse.h:158
FNFT_UINT max_iter
Definition fnft_nsev_inverse.h:161
fnft_nsev_inverse_csmethod_t contspec_inversion_method
Definition fnft_nsev_inverse.h:159
FNFT_UINT oversampling_factor
Definition fnft_nsev_inverse.h:162
fnft_nsev_inverse_dstype_t discspec_type
Definition fnft_nsev_inverse.h:160
fnft_nse_discretization_t discretization
Definition fnft_nsev_inverse.h:157