#include <FFT1D.h>
Public Types |
|
typedef std::complex< typename ComplexTraits::ComplexPrecision > |
Complex |
typedef TRegularData1D < std::complex< typename ComplexTraits::ComplexPrecision > > |
ComplexVector |
Public Member Functions |
|
void | doFFT () |
Perform a single fast fourier
transform on the data. |
|
void | doiFFT () |
Perform a single inverse fourier
transform on the data. |
|
bool | translate (double trans_origin) |
Translate the origin in physical
space about transOrigin . |
|
bool | setPhysStepWidth (double new_width) |
Set the step width in physical space
to newWidth . |
|
double | getPhysStepWidth () const |
Returns the step width in physical
space. |
|
double | getFourierStepWidth () const |
Returns the step width in fourier
space. |
|
double | getPhysSpaceMin () const |
Returns the minimal position of the
grid in physical space. |
|
double | getPhysSpaceMax () const |
Returns the maximal position of the
grid in physical space. |
|
double | getFourierSpaceMin () const |
Returns the minimal position of the
grid in fourier space. |
|
double | getFourierSpaceMax () const |
Returns the maximal position of the
grid in fourier space. |
|
Size | getMaxIndex () const |
AR: Return the largest grid position
direction. |
|
Size | getNumberOfInverseTransforms () const |
AR: Return the number of inverse
transforms that have been carried out using this class.
|
|
double | getGridCoordinates (Position position) const |
AR: Returns the grid coordinate
corresponding to the position. |
|
Complex | getData (const double pos) const throw (Exception::OutOfGrid) |
Returns the data at the grid
position closest to pos , and automatically includes
the correct phase factor and normalization. |
|
Complex | getInterpolatedValue (const double pos) const throw (Exception::OutOfGrid) |
Returns the data at point
pos. |
|
void | setData (double pos, Complex val) throw (Exception::OutOfGrid) |
Sets the data point at the grid
position closest to pos to the value val ,
and -- if called in fourier space -- automatically includes
the correct phase factor and normalization. |
|
Complex & | operator[] (const double pos) throw (Exception::OutOfGrid) |
Access the data at the grid position
closest to pos . |
|
const Complex & | operator[] (const double pos) const throw (Exception::OutOfGrid) |
Access the data at the grid position
closest to pos . |
|
Complex & | operator[] (const Position &pos) throw (Exception::OutOfGrid) |
AR: Access the (raw) data at
Position pos. |
|
const Complex & | operator[] (const Position &pos) const throw (Exception::OutOfGrid) |
AR: Access the (raw) data at
Position pos. |
|
void | setNumberOfFFTTransforms (Size num) |
void | setNumberOfiFFTTransforms (Size num) |
bool | isInFourierSpace () const |
AR: Returns true if the data
is considered to be in Fourier space, false
otherwise. |
|
Complex | phase (const double pos) const |
Compute the phase factor. |
|
Constructors and Destructors
|
|
TFFT1D () | |
Default constructor. |
|
TFFT1D (const TFFT1D &data) | |
Copy constructor. |
|
TFFT1D (Size ldn, double stepPhys=1., double origin=0., bool inFourierSpace=false) | |
Detailed constructor. |
|
virtual | ~TFFT1D () |
Destructor. |
|
Assignment
|
|
const TFFT1D & | operator= (const TFFT1D &fft1d) |
Assignment operator. |
|
virtual void | clear () |
Clear the contents. |
|
virtual void | destroy () |
Clear the contents and reset all
attributes. |
|
Predicates
|
|
bool | operator== (const TFFT1D &fft1d) const |
Equality operator. |
|
Protected Attributes |
|
Size | length_ |
bool | inFourierSpace_ |
Size | numPhysToFourier_ |
Size | numFourierToPhys_ |
double | origin_ |
The origin of the data
set. |
|
double | stepPhys_ |
double | stepFourier_ |
double | minPhys_ |
double | maxPhys_ |
double | minFourier_ |
double | maxFourier_ |
ComplexTraits::FftwPlan | planForward_ |
ComplexTraits::FftwPlan | planBackward_ |
Complex * | dataAdress_ |
bool | planCalculated_ |
BALL::TFFT1D< ComplexTraits >::TFFT1D | ( | ) |
Default constructor.
Global assignment operator from FFT2D to TRegularData2D<Complex>.
Global assignment operator from FFT3D to TRegularData3D<float>. This operator assigns the real part of the complex FFT2D-data to the TRegularData2D<float> to.
BALL::TFFT1D< ComplexTraits >::TFFT1D | ( | Size | ldn, | |
double | stepPhys =
1. , |
|||
double | origin =
0. , |
|||
bool | inFourierSpace =
false |
|||
) |
Detailed constructor.
ldn | The binary logarithm of the number of grid points (we use the logarithm to ensure that the number of points is a power of two, which is important for the FFT) | |
stepPhys | The step width in physical space | |
origin | The origin of the coordinate system | |
inFourierSpace | Flag to decide whether the data is assumed to be in physical or fourier space |
TFFT1D< ComplexTraits >::Complex BALL::TFFT1D< ComplexTraits >::getInterpolatedValue | ( | const double | pos | ) | const throw (Exception::OutOfGrid) |
Returns the data at point pos.
If pos is not a point on the grid, the data is linearly interpolated. This method automatically includes the correct phase factor and normalization.
References BALL::Maths::floor(), BALL::Maths::max(), and BALL::Maths::min().
Size BALL::TFFT1D< ComplexTraits >::getMaxIndex | ( | ) | const |
AR: Return the largest grid position direction.
This method returns the maximum position allowed in the grid. As the point in the origin has the indices 0, this method returns the number of points minus one.
Size BALL::TFFT1D< ComplexTraits >::getNumberOfInverseTransforms | ( | ) | const |
AR: Return the number of inverse transforms that have been carried out using this class.
This is an important factor for the normalization of the data.
const Complex& BALL::TFFT1D< ComplexTraits >::operator[] | ( | const Position & | pos | ) | const throw (Exception::OutOfGrid) |
AR: Access the (raw) data at Position pos.
Const method.
References BALL::TFFT1D< ComplexTraits >::operator[]().
const TFFT1D< ComplexTraits >::Complex & BALL::TFFT1D< ComplexTraits >::operator[] | ( | const double | pos | ) | const throw (Exception::OutOfGrid) |
Access the data at the grid position closest to pos .
This function returns the "raw" data at that position.
References BALL::Maths::rint().
TFFT1D< ComplexTraits >::Complex & BALL::TFFT1D< ComplexTraits >::operator[] | ( | const double | pos | ) | throw (Exception::OutOfGrid) |
Access the data at the grid position closest to pos .
This function returns the "raw" data at that position.
References BALL::Maths::rint().
Referenced by BALL::TFFT1D< ComplexTraits >::operator[]().
TFFT1D< ComplexTraits >::Complex BALL::TFFT1D< ComplexTraits >::phase | ( | const double | pos | ) | const |
Compute the phase factor.
This computes the phase factor in fourier space that results if the origin of the coordinate system in physical space is not in the "lower left corner".
References BALL::TFFT1D< ComplexTraits >::origin_, and BALL::Maths::rint().
bool BALL::TFFT1D< ComplexTraits >::setPhysStepWidth | ( | double | new_width | ) |
Set the step width in physical space to newWidth .
The step width in fourier space is automatically adjusted accordingly. newWidth must be positive, otherwise the function does nothing and retuns false .
References BALL::TFFT1D< ComplexTraits >::origin_.
bool BALL::TFFT1D< ComplexTraits >::translate | ( | double | trans_origin | ) |
Translate the origin in physical space about transOrigin .
If the result is out of bounds, the function does nothing and returns false .
References BALL::TFFT1D< ComplexTraits >::origin_, and BALL::Maths::rint().