OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <FFT.h>
Public Types | |
typedef FieldLayout< 1U > | Layout_t |
typedef std::complex< T > | Complex_t |
typedef BareField< Complex_t, 1U > | ComplexField_t |
typedef LField< Complex_t, 1U > | ComplexLField_t |
typedef FFTBase< 1U, T >::Domain_t | Domain_t |
Public Types inherited from FFTBase< 1U, T > | |
enum | |
enum | FFT_e |
typedef T | Precision_t |
typedef NDIndex< Dim > | Domain_t |
typedef FFTPACK< T > | InternalFFT_t |
Public Member Functions | |
FFT (const Domain_t &cdomain, const bool transformTheseDims[1U], const bool &compressTemps=false) | |
FFT (const Domain_t &cdomain, const bool &compressTemps=false) | |
~FFT (void) | |
void | transform (int direction, ComplexField_t &f, ComplexField_t &g, const bool &constInput=false) |
void | transform (const char *directionName, ComplexField_t &f, ComplexField_t &g, const bool &constInput=false) |
void | transform (int direction, ComplexField_t &f) |
void | transform (const char *directionName, ComplexField_t &f) |
Public Member Functions inherited from FFTBase< 1U, T > | |
FFTBase () | |
FFTBase (FFT_e transform, const Domain_t &domain, const bool transformTheseDims[Dim], bool compressTemps) | |
FFTBase (FFT_e transform, const Domain_t &domain, bool compressTemps) | |
virtual | ~FFTBase (void) |
void | write (std::ostream &out) const |
void | setDirectionName (int direction, const char *directionName) |
void | setNormFact (Precision_t nf) |
int | transVnodes () const |
Private Member Functions | |
void | setup (void) |
Private Attributes | |
Layout_t * | tempLayouts_m |
ComplexField_t * | tempFields_m |
Additional Inherited Members | |
Protected Member Functions inherited from FFTBase< 1U, T > | |
int | getDirection (const char *directionName) const |
translate direction name string into dimension number More... | |
bool | transformDim (unsigned d) const |
query whether this dimension is to be transformed More... | |
unsigned | numTransformDims (void) const |
query number of transform dimensions More... | |
unsigned | activeDimension (unsigned d) const |
get dimension number from list of transformed dimensions More... | |
InternalFFT_t & | getEngine (void) |
access the internal FFT Engine More... | |
Precision_t & | getNormFact (void) |
get the FFT normalization factor More... | |
const Domain_t & | getDomain (void) const |
get our domain More... | |
bool | checkDomain (const Domain_t &dom1, const Domain_t &dom2) const |
compare indexes of two domains More... | |
bool | compressTemps (void) const |
do we compress temps? More... | |
Static Protected Attributes inherited from FFTBase< 1U, T > | |
static GuardCellSizes< Dim > | nullGC |
null GuardCellSizes object for checking BareField arguments to transform More... | |
1D complex-to-complex FFT class
typedef std::complex<T> FFT< CCTransform, 1U, T >::Complex_t |
typedef BareField<Complex_t,1U> FFT< CCTransform, 1U, T >::ComplexField_t |
typedef LField<Complex_t,1U> FFT< CCTransform, 1U, T >::ComplexLField_t |
typedef FFTBase<1U,T>::Domain_t FFT< CCTransform, 1U, T >::Domain_t |
typedef FieldLayout<1U> FFT< CCTransform, 1U, T >::Layout_t |
FFT< CCTransform, 1U, T >::FFT | ( | const Domain_t & | cdomain, |
const bool | transformTheseDims[1U], | ||
const bool & | compressTemps = false |
||
) |
FFT< CCTransform, 1U, T >::FFT | ( | const Domain_t & | cdomain, |
const bool & | compressTemps = false |
||
) |
FFT< CCTransform, 1U, T >::~FFT | ( | void | ) |
|
private |
setup performs all the initializations necessary after the transform directions have been specified.
Definition at line 463 of file FFT.hpp.
References FFTBase< Dim, T >::compressTemps(), FFTBase< Dim, T >::getDomain(), and PARALLEL.
void FFT< CCTransform, 1U, T >::transform | ( | const char * | directionName, |
ComplexField_t & | f | ||
) |
void FFT< CCTransform, 1U, T >::transform | ( | const char * | directionName, |
ComplexField_t & | f, | ||
ComplexField_t & | g, | ||
const bool & | constInput = false |
||
) |
invoke using string for direction name
void FFT< CCTransform, 1U, T >::transform | ( | int | direction, |
ComplexField_t & | f | ||
) |
overloaded versions which perform the FFT "in place"
void FFT< CCTransform, 1U, T >::transform | ( | int | direction, |
ComplexField_t & | f, | ||
ComplexField_t & | g, | ||
const bool & | constInput = false |
||
) |
Do the FFT: specify +1 or -1 to indicate forward or inverse transform, or specify the user-defined name string for the direction. User provides separate input and output fields optional argument constInput indicates whether or not to treat the input Field argument f as const. If not, we can use it as a temporary in order to avoid an additional data transpose.
|
private |
|
private |