FFTBase< Dim, T > Class Template Reference

#include <FFTBase.h>

Inheritance diagram for FFTBase< Dim, T >:

Inheritance graph
[legend]
Collaboration diagram for FFTBase< Dim, T >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef T Precision_t
typedef NDIndex< Dim > Domain_t
typedef FFTPACK< T > InternalFFT_t
enum  { dimensions = Dim }
enum  FFT_e { ccFFT, rcFFT, sineFFT }

Public Member Functions

 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 (ostream &out) const
void setDirectionName (int direction, const char *directionName)
void setNormFact (Precision_t nf)
int transVnodes () const

Protected Member Functions

int getDirection (const char *directionName) const
 translate direction name string into dimension number
bool transformDim (unsigned d) const
 query whether this dimension is to be transformed
unsigned numTransformDims (void) const
 query number of transform dimensions
unsigned activeDimension (unsigned d) const
 get dimension number from list of transformed dimensions
InternalFFT_tgetEngine (void)
 access the internal FFT Engine
Precision_tgetNormFact (void)
 get the FFT normalization factor
const Domain_tgetDomain (void) const
 get our domain
bool checkDomain (const Domain_t &dom1, const Domain_t &dom2) const
 compare indexes of two domains
bool compressTemps (void) const
 do we compress temps?

Static Protected Attributes

static GuardCellSizes< Dim > nullGC = GuardCellSizes<Dim>()
 null GuardCellSizes object for checking BareField arguments to transform

Detailed Description

template<unsigned Dim, class T>
class FFTBase< Dim, T >

The FFTBase class handles duties for the FFT class that do not involve the type of transform to be done. FFTBase is templated on dimensionality of the Field to transform and the floating-point precision type of the Field (float or double).

FFT Base Class to do stuff that is independent of transform type

Definition at line 61 of file FFTBase.h.


Member Typedef Documentation

template<unsigned Dim, class T>
typedef NDIndex<Dim> FFTBase< Dim, T >::Domain_t
 

Reimplemented in FFT< CCTransform, Dim, T >, FFT< CCTransform, 1U, T >, FFT< RCTransform, Dim, T >, FFT< RCTransform, 1U, T >, FFT< SineTransform, Dim, T >, and FFT< SineTransform, 1U, T >.

Definition at line 68 of file FFTBase.h.

template<unsigned Dim, class T>
typedef FFTPACK<T> FFTBase< Dim, T >::InternalFFT_t
 

Definition at line 77 of file FFTBase.h.

template<unsigned Dim, class T>
typedef T FFTBase< Dim, T >::Precision_t
 

Definition at line 67 of file FFTBase.h.


Member Enumeration Documentation

template<unsigned Dim, class T>
anonymous enum
 

Enumerator:
dimensions 

Definition at line 66 of file FFTBase.h.

template<unsigned Dim, class T>
enum FFTBase::FFT_e
 

Enumerator:
ccFFT 
rcFFT 
sineFFT 

Definition at line 71 of file FFTBase.h.


Constructor & Destructor Documentation

template<unsigned Dim, class T>
FFTBase< Dim, T >::FFTBase  )  [inline]
 

Definition at line 80 of file FFTBase.h.

template<unsigned Dim, class T>
FFTBase< Dim, T >::FFTBase FFT_e  transform,
const Domain_t domain,
const bool  transformTheseDims[Dim],
bool  compressTemps
 

inputs are enum of transform type, domain of input Field, which dimensions to transform, and whether to compress temporary Fields when not in use

Parameters:
transform 
domain 
transformTheseDims 
compressTemps 

template<unsigned Dim, class T>
FFTBase< Dim, T >::FFTBase FFT_e  transform,
const Domain_t domain,
bool  compressTemps
 

Parameters:
transform 
domain 
compressTemps 

template<unsigned Dim, class T>
virtual FFTBase< Dim, T >::~FFTBase void   )  [inline, virtual]
 

Definition at line 107 of file FFTBase.h.


Member Function Documentation

template<unsigned Dim, class T>
unsigned FFTBase< Dim, T >::activeDimension unsigned  d  )  const [inline, protected]
 

get dimension number from list of transformed dimensions

get dimension number from list of transformed dimensions

Parameters:
d 
Returns:

Definition at line 264 of file FFTBase.h.

References PAssert.

template<unsigned Dim, class T>
bool FFTBase< Dim, T >::checkDomain const Domain_t dom1,
const Domain_t dom2
const [protected]
 

compare indexes of two domains

template<unsigned Dim, class T>
bool FFTBase< Dim, T >::compressTemps void   )  const [inline, protected]
 

do we compress temps?

Definition at line 178 of file FFTBase.h.

template<unsigned Dim, class T>
int FFTBase< Dim, T >::getDirection const char *  directionName  )  const [inline, protected]
 

translate direction name string into dimension number

Translate direction name string into dimension number

Parameters:
directionName 
Returns:

Definition at line 237 of file FFTBase.h.

template<unsigned Dim, class T>
const Domain_t& FFTBase< Dim, T >::getDomain void   )  const [inline, protected]
 

get our domain

Definition at line 172 of file FFTBase.h.

template<unsigned Dim, class T>
InternalFFT_t& FFTBase< Dim, T >::getEngine void   )  [inline, protected]
 

access the internal FFT Engine

Definition at line 166 of file FFTBase.h.

template<unsigned Dim, class T>
Precision_t& FFTBase< Dim, T >::getNormFact void   )  [inline, protected]
 

get the FFT normalization factor

Definition at line 169 of file FFTBase.h.

Referenced by FFT< CCTransform, Dim, T >::FFT().

template<unsigned Dim, class T>
unsigned FFTBase< Dim, T >::numTransformDims void   )  const [inline, protected]
 

query number of transform dimensions

Definition at line 160 of file FFTBase.h.

Referenced by FFT< SineTransform, Dim, T >::~FFT(), FFT< RCTransform, Dim, T >::~FFT(), and FFT< CCTransform, Dim, T >::~FFT().

template<unsigned Dim, class T>
void FFTBase< Dim, T >::setDirectionName int  direction,
const char *  directionName
[inline]
 

Allow the user to name the transform directions, for code clarity.

Parameters:
direction 
directionName 

Definition at line 221 of file FFTBase.h.

References PAssert.

template<unsigned Dim, class T>
void FFTBase< Dim, T >::setNormFact Precision_t  nf  )  [inline]
 

Set the FFT normalization factor (to something other than the default)

Parameters:
nf 

Definition at line 129 of file FFTBase.h.

template<unsigned Dim, class T>
bool FFTBase< Dim, T >::transformDim unsigned  d  )  const [inline, protected]
 

query whether this dimension is to be transformed

query whether this dimension is to be transformed

Parameters:
d 
Returns:

Definition at line 250 of file FFTBase.h.

References PAssert.

template<unsigned Dim, class T>
int FFTBase< Dim, T >::transVnodes  )  const [inline]
 

Utility to determine the number of vnodes to use in temporary transpose fields; this is either -1, or a limited number set on the command line

Returns:

Definition at line 137 of file FFTBase.h.

template<unsigned Dim, class T>
void FFTBase< Dim, T >::write ostream &  out  )  const
 

I/O for FFT object

Parameters:
out 

Definition at line 103 of file FFTBase.cpp.

References CT, endl(), TAU_FFT, TAU_IO, TAU_PROFILE, and TAU_TYPE_STRING.

Here is the call graph for this function:


Member Data Documentation

template<unsigned Dim, class T>
GuardCellSizes< Dim > FFTBase< Dim, T >::nullGC = GuardCellSizes<Dim>() [static, protected]
 

null GuardCellSizes object for checking BareField arguments to transform

! These members are used by the derived FFT classes

Definition at line 151 of file FFTBase.h.


The documentation for this class was generated from the following files:
Generated on Mon Jan 16 14:38:35 2006 for IPPL by  doxygen 1.4.6