FNFT
Functions
fnft__akns_fscatter.h File Reference

Computes the polynomial approximation of the combined scattering matrix. More...

#include "fnft__akns_discretization.h"
#include "fnft__misc.h"
#include "fnft__errwarn.h"
#include "fnft__poly_fmult.h"
Include dependency graph for fnft__akns_fscatter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

FNFT_UINT fnft__akns_fscatter_numel (FNFT_UINT D, fnft__akns_discretization_t discretization)
 Returns the length of transfer_matrix to be allocated based on the number of samples and discretization. More...
 
FNFT_INT fnft__akns_fscatter (const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_COMPLEX const *const r, const FNFT_REAL eps_t, FNFT_COMPLEX *const result, FNFT_UINT *const deg_ptr, FNFT_INT *const W_ptr, fnft__akns_discretization_t discretization)
 Fast computation of polynomial approximation of the combined scattering matrix. More...
 

Detailed Description

Computes the polynomial approximation of the combined scattering matrix.

Function Documentation

◆ fnft__akns_fscatter()

FNFT_INT fnft__akns_fscatter ( const FNFT_UINT  D,
FNFT_COMPLEX const *const  q,
FNFT_COMPLEX const *const  r,
const FNFT_REAL  eps_t,
FNFT_COMPLEX *const  result,
FNFT_UINT *const  deg_ptr,
FNFT_INT *const  W_ptr,
fnft__akns_discretization_t  discretization 
)

Fast computation of polynomial approximation of the combined scattering matrix.

This routine computes the polynomial approximation of the combined scattering matrix by multipying together individual scattering matrices.
Individual scattering matrices depend on the chosen discretization.

The main reference is Wahls and Poor (Proc. ICASSP 2013 ).

Parameters
[in]DNumber of samples
[in]qArray of length D, contains samples \( q(t_n)=q(x_0, t_n) \), where \( t_n = T[0] + n(T[1]-T[0])/(D-1) \) and \(n=0,1,\dots,D-1\), of the to-be-transformed signal in ascending order (i.e., \( q(t_0), q(t_1), \dots, q(t_{D-1}) \))
[in]rArray of length D, contains samples \( r(t_n)=r(x_0, t_n) \), where \( t_n = T[0] + n(T[1]-T[0])/(D-1) \) and \(n=0,1,\dots,D-1\), of the to-be-transformed signal in ascending order (i.e., \( r(t_0), r(t_1), \dots, r(t_{D-1}) \))
[in]eps_tStep-size, eps_t \(= (T[1]-T[0])/(D-1) \).
[out]resultarray of length akns_fscatter_numel(D,discretization), will contain the combined scattering matrix. Result needs to be pre-allocated with malloc(akns_fscatter_numel(D,discretization)*sizeof(COMPLEX)).
[out]deg_ptrPointer to variable containing degree of the discretization. Determined based on discretization by fnft__akns_discretization_degree.
[in]W_ptrNormalization flag. Polynomial coefficients are normalized if W_ptr is non-zero.
[in]discretizationThe type of discretization to be used. Should be of type fnft__akns_discretization_t. Check fnft__akns_discretization_t for list of supported types.
Returns
FNFT_SUCCESS or one of the FNFT_EC_... error codes defined in fnft_errwarn.h.

◆ fnft__akns_fscatter_numel()

FNFT_UINT fnft__akns_fscatter_numel ( FNFT_UINT  D,
fnft__akns_discretization_t  discretization 
)

Returns the length of transfer_matrix to be allocated based on the number of samples and discretization.

This routine returns the length to be allocated based on the number of samples and discretization of type discretization.

Parameters
[in]DNumber of samples.
[in]discretizationType of discretization from fnft__akns_discretization_t.
Returns
Returns the length to be allocated. Returns 0 for unknown discretizations.