FNFT
fnft__akns_discretization.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  * Shrinivas Chimmalgi (TU Delft) 2017.
19  * Peter J. Prins (TU Delft) 2018.
20  */
21 
28 #ifndef FNFT__AKNS_DISCRETIZATION_H
29 #define FNFT__AKNS_DISCRETIZATION_H
30 
32 #include "fnft__errwarn.h"
33 #include "fnft__misc.h"
34 
35 
50  discretization);
51 
67 
82 
98 
118  FNFT_COMPLEX * const vals, fnft__akns_discretization_t discretization);
119 
139  FNFT_COMPLEX * const vals, fnft__akns_discretization_t discretization);
140 
161  fnft__akns_discretization_t akns_discretization);
162 
163 
164 #ifdef FNFT_ENABLE_SHORT_NAMES
165 #define akns_discretization_degree(...) fnft__akns_discretization_degree(__VA_ARGS__)
166 #define akns_discretization_boundary_coeff(...) fnft__akns_discretization_boundary_coeff(__VA_ARGS__)
167 #define akns_discretization_upsampling_factor(...) fnft__akns_discretization_upsampling_factor(__VA_ARGS__)
168 #define akns_discretization_method_order(...) fnft__akns_discretization_method_order(__VA_ARGS__)
169 #define akns_discretization_lambda_to_z(...) fnft__akns_discretization_lambda_to_z(__VA_ARGS__)
170 #define akns_discretization_z_to_lambda(...) fnft__akns_discretization_z_to_lambda(__VA_ARGS__)
171 #define akns_discretization_method_weights(...) fnft__akns_discretization_method_weights(__VA_ARGS__)
172 
173 #endif
174 
175 #endif
FNFT_INT
int32_t FNFT_INT
Definition: fnft_numtypes.h:56
FNFT_UINT
size_t FNFT_UINT
Definition: fnft_numtypes.h:62
fnft__akns_discretization_method_weights
FNFT_INT fnft__akns_discretization_method_weights(FNFT_COMPLEX **weights_ptr, fnft__akns_discretization_t akns_discretization)
This routine computes various weights required by some methods based on the discretization.
fnft__akns_discretization_upsampling_factor
FNFT_UINT fnft__akns_discretization_upsampling_factor(fnft__akns_discretization_t discretization)
This routine returns the scaling for effective number of samples based on the discretization.
fnft__errwarn.h
fnft__akns_discretization_degree
FNFT_UINT fnft__akns_discretization_degree(fnft__akns_discretization_t discretization)
This routine returns the max degree d of the polynomials in a single scattering matrix or zero if the...
fnft__akns_discretization_boundary_coeff
FNFT_REAL fnft__akns_discretization_boundary_coeff(fnft__akns_discretization_t discretization)
This routine returns the boundary coefficient based on the discretization.
fnft__misc.h
Miscellaneous functions used in the FNFT library.
fnft__akns_discretization_method_order
FNFT_UINT fnft__akns_discretization_method_order(fnft__akns_discretization_t discretization)
This routine returns the order of the method based on the discretization.
FNFT_COMPLEX
double complex FNFT_COMPLEX
Definition: fnft_numtypes.h:47
fnft__akns_discretization_lambda_to_z
FNFT_INT fnft__akns_discretization_lambda_to_z(const FNFT_UINT n, const FNFT_REAL eps_t, FNFT_COMPLEX *const vals, fnft__akns_discretization_t discretization)
This routine maps from continuous-time domain to in the discrete-time domain based on the discretiz...
FNFT_REAL
double FNFT_REAL
Definition: fnft_numtypes.h:40
fnft__akns_discretization_t.h
Lists discretizations of AKNS system.
fnft__akns_discretization_t
fnft__akns_discretization_t
Enum that specifies discretizations used to compute nonlinear Fourier transforms of systems that fit ...
Definition: fnft__akns_discretization_t.h:103
fnft__akns_discretization_z_to_lambda
FNFT_INT fnft__akns_discretization_z_to_lambda(const FNFT_UINT n, const FNFT_REAL eps_t, FNFT_COMPLEX *const vals, fnft__akns_discretization_t discretization)
This routine maps from the discrete-time domain to in the continuous-time domain based on the discr...