Modules | |
Texture: Private Functions | |
This module containes the private functions used for the implementation of the texture transforms. | |
Texture: Utility Functions | |
This module provides functions that perform some basic operations on the texture_plan data structur. | |
Data Structures | |
struct | texture_plan_ |
Definition of the texture_plan. More... | |
struct | texture_plan_ |
Definition of the texture_plan. More... | |
Defines | |
#define | TEXTURE_MAX_ANGLE (2*3.1415926535897932384) |
Constant for the period length of sine (default: ![]() | |
Typedefs | |
typedef texture_plan_ | texture_plan |
Stores all data for a direct and adjoint transformation. | |
Functions | |
void | texture_precompute (int N) |
Performes precomputations with default values for all parameters. | |
void | texture_precompute_advanced (int N, unsigned int texture_precompute_flags, unsigned int nfsft_precompute_flags, double nfsft_threshold) |
Performes precomputations. | |
void | texture_init (texture_plan *ths, int N, int N1, int N2, complex *omega, complex *x, const double *h_phi, const double *h_theta, const double *r) |
Initialisation of a plan with default values for all parameters. | |
void | texture_init_advanced (texture_plan *ths, int N, int N1, int N2, complex *omega, complex *x, const double *h_phi, const double *h_theta, const double *r, unsigned int texture_init_flags, unsigned int nfsft_init_flags, int nfft_cutoff) |
Initialisation of a plan. | |
void | texture_trafo (texture_plan *ths) |
Carries out the direct transform. | |
void | texture_adjoint (texture_plan *ths) |
Carries out the adjoint transform. | |
void | texture_finalize (texture_plan *ths) |
Frees all memory allocated by texture_init or texture_init_advanced. | |
void | texture_forget () |
Frees all memory allocated by texture_precompute or texture_precompute_advanced. |
You have to bear in mind the following two points:
In the following we describe, how the input and output data is stored in the arguments for texture_init or texture_init_advanced. Formally the following conditions hold:
for all
To get a better feeling what texture_flat_index does, see the following fragment of code:
int l, m, n; for(l = 0; l <= N; l++) { for(m = -l; m <= l; m++) { for(n = -l; n <= l; n++) { printf("%d\n", texture_flat_index(l, m, n)); } } }
|
Carries out the adjoint transform. Maps the samples on the frequencies. Therefor the frequencies change, everything else is preserved.
|
|
Initialisation of a plan with default values for all parameters. The arguments after ths will be stored in the plan ths.
|
|
Initialisation of a plan. The arguments after ths will be stored in the plan ths.
|
|
Performes precomputations with default values for all parameters. Afterwards texture_trafo and texture_adjoint will work with any plans having a bandwidth equal or less than N.
|
|
Performes precomputations. Afterwards texture_trafo and texture_adjoint will work with any plans having a bandwidth equal or less than N.
|
|
Carries out the direct transform. Maps the frequencies on the samples. Therefore the samples will be changed, everything else will be preserved.
|