casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
casacore::LatticeFFT Class Reference

Functions for Fourier transforming Lattices. More...

#include <LatticeFFT.h>

Public Member Functions

template<>
void cfft2d (Lattice< Float > &, const Bool)
 implement template specializations to throw exceptions in the relevant cases. More...
 
template<>
void cfft2d (Lattice< Double > &, const Bool)
 
template<>
void cfft (Lattice< Float > &, const Vector< Bool > &, const Bool)
 
template<>
void cfft (Lattice< Double > &, const Vector< Bool > &, const Bool)
 
template<>
void rcfft (Lattice< Float > &, const Lattice< Complex > &, const Vector< Bool > &, const Bool, Bool)
 
template<>
void rcfft (Lattice< Double > &, const Lattice< DComplex > &, const Vector< Bool > &, const Bool, Bool)
 
template<>
void myrcfft (Lattice< Float > &, const Lattice< Complex > &, const Vector< Bool > &, const Bool)
 
template<>
void myrcfft (Lattice< Double > &, const Lattice< DComplex > &, const Vector< Bool > &, const Bool)
 
template<>
void rcfft (Lattice< Float > &, const Lattice< Complex > &, const Bool, Bool)
 
template<>
void rcfft (Lattice< Double > &, const Lattice< DComplex > &, const Bool, Bool)
 
template<>
void myrcfft (Lattice< Float > &, const Lattice< Complex > &, const Bool)
 
template<>
void myrcfft (Lattice< Double > &, const Lattice< DComplex > &, const Bool)
 
template<>
void crfft (Lattice< Complex > &, Lattice< Float > &, const Vector< Bool > &, const Bool, Bool)
 
template<>
void crfft (Lattice< DComplex > &, Lattice< Double > &, const Vector< Bool > &, const Bool, Bool)
 
template<>
void crfft (Lattice< Complex > &, Lattice< Float > &, const Bool, Bool)
 
template<>
void crfft (Lattice< DComplex > &, Lattice< Double > &, const Bool, Bool)
 
template<>
void crfft (Lattice< Complex > &, const Lattice< Float > &, const Bool, Bool)
 
template<>
void crfft (Lattice< DComplex > &, const Lattice< Double > &, const Bool, Bool)
 

Static Public Member Functions

template<class ComplexType >
static void cfft2d (Lattice< ComplexType > &cLattice, const Bool toFrequency=True)
 2-D in-place complex->complex FFT. More...
 
template<class ComplexType >
static void cfft (Lattice< ComplexType > &cLattice, const Vector< Bool > &whichAxes, const Bool toFrequency=True)
 N-D in-place complex->complex FFT. More...
 
template<class ComplexType >
static void cfft0 (Lattice< ComplexType > &cLattice, const Vector< Bool > &whichAxes, const Bool toFrequency=True)
 Non-folded version. More...
 
template<class ComplexType >
static void cfft (Lattice< ComplexType > &cLattice, const Bool toFrequency=True)
 N-D in-place complex->complex FFT. More...
 
template<class ComplexType >
static void rcfft (Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True, Bool doFast=False)
 N-D real->complex FFT. More...
 
template<class ComplexType >
static void myrcfft (Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True)
 
template<class ComplexType >
static void rcfft (Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Bool doShift=True, Bool doFast=False)
 N-D real->complex FFT. More...
 
template<class ComplexType >
static void myrcfft (Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Bool doShift=True)
 
template<class ComplexType >
static void crfft (Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, Lattice< ComplexType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True, Bool doFast=False)
 N-D complex->real FFT. More...
 
template<class ComplexType >
static void crfft (Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, Lattice< ComplexType > &in, const Bool doShift=True, Bool doFast=False)
 
template<class ComplexType >
static void crfft (Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, const Lattice< ComplexType > &in, const Bool doShift=True, Bool doFast=False)
 

Detailed Description

Functions for Fourier transforming Lattices.

Etymology

Synopsis

Example

Motivation

Definition at line 67 of file LatticeFFT.h.

Member Function Documentation

template<class ComplexType >
static void casacore::LatticeFFT::cfft ( Lattice< ComplexType > &  cLattice,
const Vector< Bool > &  whichAxes,
const Bool  toFrequency = True 
)
static

N-D in-place complex->complex FFT.

Only transform over selected dimensions. Iterate over the others. whichAxes must be the same length as the number of dimensions in the Lattice otherwise an AipsError is thrown.

template<class ComplexType >
static void casacore::LatticeFFT::cfft ( Lattice< ComplexType > &  cLattice,
const Bool  toFrequency = True 
)
static

N-D in-place complex->complex FFT.

Transform over all axes.

template<>
void casacore::LatticeFFT::cfft ( Lattice< Float > &  ,
const Vector< Bool > &  ,
const Bool   
)
inline

Definition at line 166 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::cfft ( Lattice< Double > &  ,
const Vector< Bool > &  ,
const Bool   
)
inline

Definition at line 174 of file LatticeFFT.h.

References ThrowCc.

template<class ComplexType >
static void casacore::LatticeFFT::cfft0 ( Lattice< ComplexType > &  cLattice,
const Vector< Bool > &  whichAxes,
const Bool  toFrequency = True 
)
static

Non-folded version.

template<class ComplexType >
static void casacore::LatticeFFT::cfft2d ( Lattice< ComplexType > &  cLattice,
const Bool  toFrequency = True 
)
static

2-D in-place complex->complex FFT.

Transforms over the first two dimensions and iterates over all the others. The Lattice must have two or more dimensions otherwise an AipsError is thrown.

template<>
void casacore::LatticeFFT::cfft2d ( Lattice< Float > &  ,
const Bool   
)
inline

implement template specializations to throw exceptions in the relevant cases.

Definition at line 154 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::cfft2d ( Lattice< Double > &  ,
const Bool   
)
inline

Definition at line 160 of file LatticeFFT.h.

References ThrowCc.

template<class ComplexType >
static void casacore::LatticeFFT::crfft ( Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  out,
Lattice< ComplexType > &  in,
const Vector< Bool > &  whichAxes,
const Bool  doShift = True,
Bool  doFast = False 
)
static

N-D complex->real FFT.

Only one half of the Hermition input is required. If whichAxis is specified Transforms are only done on selected dimensions otherwise they are done on all axes. The origin of the transform is the center of the Lattice ie., [nx/2,ny/2,...] if doShift is True, otherwise it is the first element ie., [0,0,...]

These functions will scramble the input Lattice unless the versions with const inputs are used. The const input versions are less efficient as they create a temporary Lattice and copy the input data into it.

template<class ComplexType >
static void casacore::LatticeFFT::crfft ( Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  out,
Lattice< ComplexType > &  in,
const Bool  doShift = True,
Bool  doFast = False 
)
static
template<class ComplexType >
static void casacore::LatticeFFT::crfft ( Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  out,
const Lattice< ComplexType > &  in,
const Bool  doShift = True,
Bool  doFast = False 
)
static
template<>
void casacore::LatticeFFT::crfft ( Lattice< Complex > &  ,
Lattice< Float > &  ,
const Vector< Bool > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 258 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::crfft ( Lattice< DComplex > &  ,
Lattice< Double > &  ,
const Vector< Bool > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 268 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::crfft ( Lattice< Complex > &  ,
Lattice< Float > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 278 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::crfft ( Lattice< DComplex > &  ,
Lattice< Double > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 287 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::crfft ( Lattice< Complex > &  ,
const Lattice< Float > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 296 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::crfft ( Lattice< DComplex > &  ,
const Lattice< Double > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 305 of file LatticeFFT.h.

References ThrowCc.

template<class ComplexType >
static void casacore::LatticeFFT::myrcfft ( Lattice< ComplexType > &  out,
const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  in,
const Vector< Bool > &  whichAxes,
const Bool  doShift = True 
)
static
template<class ComplexType >
static void casacore::LatticeFFT::myrcfft ( Lattice< ComplexType > &  out,
const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  in,
const Bool  doShift = True 
)
static
template<>
void casacore::LatticeFFT::myrcfft ( Lattice< Float > &  ,
const Lattice< Complex > &  ,
const Vector< Bool > &  ,
const Bool   
)
inline

Definition at line 202 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::myrcfft ( Lattice< Double > &  ,
const Lattice< DComplex > &  ,
const Vector< Bool > &  ,
const Bool   
)
inline

Definition at line 212 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::myrcfft ( Lattice< Float > &  ,
const Lattice< Complex > &  ,
const Bool   
)
inline

Definition at line 240 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::myrcfft ( Lattice< Double > &  ,
const Lattice< DComplex > &  ,
const Bool   
)
inline

Definition at line 249 of file LatticeFFT.h.

References ThrowCc.

template<class ComplexType >
static void casacore::LatticeFFT::rcfft ( Lattice< ComplexType > &  out,
const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  in,
const Vector< Bool > &  whichAxes,
const Bool  doShift = True,
Bool  doFast = False 
)
static

N-D real->complex FFT.

Only one half of the Hermition result is returned. Transforms are only done on selected dimensions. The origin of the transform is the center of the Lattice ie., [nx/2,ny/2,...] if doShift is True. Otherwise it is the first element ie., [0,0,...]

template<class ComplexType >
static void casacore::LatticeFFT::rcfft ( Lattice< ComplexType > &  out,
const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &  in,
const Bool  doShift = True,
Bool  doFast = False 
)
static

N-D real->complex FFT.

Only one half of the Hermition result is returned. Transform over all dimensions. The origin of the transform is the center of the Lattice ie., [nx/2,ny/2,...] if doShift is True. Otherwise it is the first element ie., [0,0,...]

template<>
void casacore::LatticeFFT::rcfft ( Lattice< Float > &  ,
const Lattice< Complex > &  ,
const Vector< Bool > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 182 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::rcfft ( Lattice< Double > &  ,
const Lattice< DComplex > &  ,
const Vector< Bool > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 192 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::rcfft ( Lattice< Float > &  ,
const Lattice< Complex > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 222 of file LatticeFFT.h.

References ThrowCc.

template<>
void casacore::LatticeFFT::rcfft ( Lattice< Double > &  ,
const Lattice< DComplex > &  ,
const Bool  ,
Bool   
)
inline

Definition at line 231 of file LatticeFFT.h.

References ThrowCc.


The documentation for this class was generated from the following file: