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. | |
please see Spherical Harmonics in NFSFT.
You have to bear in mind the following two points:
(latitude) and
(longitude) as described in Spherical Coordinates. Their normalisation has to be defined in TEXTURE_MAX_ANGLE before compiling the library. Hence
and
have to satisfy the following conditions:
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:
omega[texture_flat_index (l, m, n)],
x[i * N2 + j],
of
h_phi[i],
of
h_theta[i],
of
r[2 * (i * N2 + j)] and
of
r[2 * (i * N2 + j) + 1]
for all ![$l \in [0 \ldots N],\ m \in [-l \ldots l],\ n \in [-l \ldots l],\ i \in [1 \ldots N_1] \text{ and } j \in [1 \ldots N_2].$](form_29.png)
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.
|
1.4.4