FNFT
fnft_nsep.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 */
19 
27 #ifndef FNFT_NSEP_H
28 #define FNFT_NSEP_H
29 
31 
46 typedef enum {
47  fnft_nsep_loc_SUBSAMPLE_AND_REFINE,
48  fnft_nsep_loc_GRIDSEARCH,
49  fnft_nsep_loc_MIXED
51 
62 typedef enum {
63  fnft_nsep_filt_NONE,
64  fnft_nsep_filt_MANUAL,
65  fnft_nsep_filt_AUTO
67 
132 typedef struct {
135  FNFT_REAL bounding_box[4];
139  FNFT_REAL floquet_range[2];
144 
165 
230 FNFT_INT fnft_nsep(const FNFT_UINT D, FNFT_COMPLEX const * const q,
231  FNFT_REAL const * const T, FNFT_UINT * const K_ptr,
232  FNFT_COMPLEX * const main_spec, FNFT_UINT * const M_ptr,
233  FNFT_COMPLEX * const aux_spec, FNFT_REAL * const sheet_indices,
234  const FNFT_INT kappa, fnft_nsep_opts_t * opts);
235 
236 #endif
fnft_nsep_opts_t::discretization
fnft_nse_discretization_t discretization
Definition: fnft_nsep.h:137
FNFT_INT
int32_t FNFT_INT
Definition: fnft_numtypes.h:56
FNFT_UINT
size_t FNFT_UINT
Definition: fnft_numtypes.h:62
fnft_nse_discretization_t
fnft_nse_discretization_t
Enum that specifies discretizations used to compute nonlinear Fourier transforms for the Nonlinear Sc...
Definition: fnft_nse_discretization_t.h:98
fnft_nsep
FNFT_INT fnft_nsep(const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_REAL const *const T, FNFT_UINT *const K_ptr, FNFT_COMPLEX *const main_spec, FNFT_UINT *const M_ptr, FNFT_COMPLEX *const aux_spec, FNFT_REAL *const sheet_indices, const FNFT_INT kappa, fnft_nsep_opts_t *opts)
Fast nonlinear Fourier transform for the nonlinear Schroedinger equation with periodic boundary condi...
fnft_nsep_opts_t
Stores additional options for the routine fnft_nsep.
Definition: fnft_nsep.h:132
fnft_nse_discretization_t.h
Lists discretizations for the nonlinear Schroedinger equation.
fnft_nsep_opts_t::max_evals
FNFT_UINT max_evals
Definition: fnft_nsep.h:136
fnft_nsep_opts_t::filtering
fnft_nsep_filt_t filtering
Definition: fnft_nsep.h:134
fnft_nsep_opts_t::normalization_flag
FNFT_INT normalization_flag
Definition: fnft_nsep.h:138
fnft_nsep_filt_t
fnft_nsep_filt_t
Definition: fnft_nsep.h:62
FNFT_COMPLEX
double complex FNFT_COMPLEX
Definition: fnft_numtypes.h:47
fnft_nsep_default_opts
fnft_nsep_opts_t fnft_nsep_default_opts()
Creates a new options variable for fnft_nsep with default settings.
fnft_nsep_loc_t
fnft_nsep_loc_t
Definition: fnft_nsep.h:46
FNFT_REAL
double FNFT_REAL
Definition: fnft_numtypes.h:40
fnft_nsep_opts_t::tol
FNFT_REAL tol
Definition: fnft_nsep.h:142
fnft_nsep_opts_t::Dsub
FNFT_UINT Dsub
Definition: fnft_nsep.h:141
fnft_nsep_opts_t::localization
fnft_nsep_loc_t localization
Definition: fnft_nsep.h:133
fnft_nsep_opts_t::points_per_spine
FNFT_UINT points_per_spine
Definition: fnft_nsep.h:140