[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

FFTWComplex< Real > Class Template Reference

Wrapper class for the FFTW complex types 'fftw_complex'. More...

#include <vigra/fftw3.hxx>

Public Types

typedef FFTWReal2Complex< Real >::type complex_type
 
typedef value_type constconst_iterator
 
typedef value_type constconst_reference
 
typedef value_typeiterator
 
typedef value_type NormType
 
typedef value_typereference
 
typedef value_type SquaredNormType
 
typedef Real value_type
 

Public Member Functions

 FFTWComplex (fftw_complex const &o)
 
 FFTWComplex (FFTWComplex const &o)
 
template<class U >
 FFTWComplex (FFTWComplex< U > const &o)
 
 FFTWComplex (fftwf_complex const &o)
 
 FFTWComplex (fftwl_complex const &o)
 
template<class T >
 FFTWComplex (std::complex< T > const &o)
 
template<class T >
 FFTWComplex (TinyVector< T, 2 > const &o)
 
 FFTWComplex (value_type const &re=0.0, value_type const &im=0.0)
 
NormType magnitude () const
 
FFTWComplex operator- () const
 
FFTWComplexoperator= (double o)
 
FFTWComplexoperator= (fftw_complex const &o)
 
FFTWComplexoperator= (FFTWComplex const &o)
 
template<class U >
FFTWComplexoperator= (FFTWComplex< U > const &o)
 
FFTWComplexoperator= (fftwf_complex const &o)
 
FFTWComplexoperator= (fftwl_complex const &o)
 
FFTWComplexoperator= (float o)
 
FFTWComplexoperator= (long double o)
 
template<class T >
FFTWComplexoperator= (std::complex< T > const &o)
 
template<class T >
FFTWComplexoperator= (TinyVector< T, 2 > const &o)
 
reference operator[] (int i)
 
const_reference operator[] (int i) const
 
value_type phase () const
 
int size () const
 
SquaredNormType squaredMagnitude () const
 

Detailed Description

template<class Real = double>
class vigra::FFTWComplex< Real >

Wrapper class for the FFTW complex types 'fftw_complex'.

This class encapsulates the low-level complex number types provided by the FFTW Fast Fourier Transform library (i.e. 'fftw_complex', 'fftwf_complex', 'fftwl_complex'). In particular, it provides constructors, member functions and arithmetic operators that make FFTW complex numbers compatible with std::complex. In addition, the class defines transformations to polar coordinates and accessors.

FFTWComplex implements the concepts AlgebraicField and DivisionAlgebra. The standard image types FFTWRealImage and FFTWComplexImage are defined.

See also:

#include <vigra/fftw3.hxx> (for FFTW 3) or
#include <vigra/fftw.hxx> (for deprecated FFTW 2)
Namespace: vigra

Member Typedef Documentation

◆ complex_type

template<class Real = double>
typedef FFTWReal2Complex<Real>::type complex_type

The wrapped complex type

◆ value_type

template<class Real = double>
typedef Real value_type

The complex' component type, as defined in 'fftw3.h'

◆ reference

template<class Real = double>
typedef value_type& reference

reference type (result of operator[])

◆ const_reference

template<class Real = double>
typedef value_type const& const_reference

const reference type (result of operator[] const)

◆ iterator

template<class Real = double>
typedef value_type* iterator

iterator type (result of begin() )

◆ const_iterator

template<class Real = double>
typedef value_type const* const_iterator

const iterator type (result of begin() const)

◆ NormType

template<class Real = double>
typedef value_type NormType

The norm type (result of magnitude())

◆ SquaredNormType

template<class Real = double>
typedef value_type SquaredNormType

The squared norm type (result of squaredMagnitde())

Constructor & Destructor Documentation

◆ FFTWComplex() [1/8]

template<class Real = double>
FFTWComplex ( value_type const re = 0.0,
value_type const im = 0.0 
)

Construct from real and imaginary part. Default: 0.

◆ FFTWComplex() [2/8]

template<class Real = double>
FFTWComplex ( FFTWComplex< Real > const o)

Copy constructor.

◆ FFTWComplex() [3/8]

template<class Real = double>
template<class U >
FFTWComplex ( FFTWComplex< U > const o)

Copy constructor.

◆ FFTWComplex() [4/8]

template<class Real = double>
FFTWComplex ( fftw_complex const o)

Construct from plain fftw_complex.

◆ FFTWComplex() [5/8]

template<class Real = double>
FFTWComplex ( fftwf_complex const o)

Construct from plain fftwf_complex.

◆ FFTWComplex() [6/8]

template<class Real = double>
FFTWComplex ( fftwl_complex const o)

Construct from plain fftwl_complex.

◆ FFTWComplex() [7/8]

template<class Real = double>
template<class T >
FFTWComplex ( std::complex< T > const o)

Construct from std::complex.

◆ FFTWComplex() [8/8]

template<class Real = double>
template<class T >
FFTWComplex ( TinyVector< T, 2 > const o)

Construct from TinyVector.

Member Function Documentation

◆ operator=() [1/10]

template<class Real = double>
FFTWComplex & operator= ( FFTWComplex< Real > const o)

Assignment.

◆ operator=() [2/10]

template<class Real = double>
template<class U >
FFTWComplex & operator= ( FFTWComplex< U > const o)

Assignment.

◆ operator=() [3/10]

template<class Real = double>
FFTWComplex & operator= ( fftw_complex const o)

Assignment.

◆ operator=() [4/10]

template<class Real = double>
FFTWComplex & operator= ( fftwf_complex const o)

Assignment.

◆ operator=() [5/10]

template<class Real = double>
FFTWComplex & operator= ( fftwl_complex const o)

Assignment.

◆ operator=() [6/10]

template<class Real = double>
FFTWComplex & operator= ( double  o)

Assignment.

◆ operator=() [7/10]

template<class Real = double>
FFTWComplex & operator= ( float  o)

Assignment.

◆ operator=() [8/10]

template<class Real = double>
FFTWComplex & operator= ( long double  o)

Assignment.

◆ operator=() [9/10]

template<class Real = double>
template<class T >
FFTWComplex & operator= ( TinyVector< T, 2 > const o)

Assignment.

◆ operator=() [10/10]

template<class Real = double>
template<class T >
FFTWComplex & operator= ( std::complex< T > const o)

Assignment.

◆ operator-()

template<class Real = double>
FFTWComplex operator- ( ) const

Unary negation.

◆ squaredMagnitude()

template<class Real = double>
SquaredNormType squaredMagnitude ( ) const

Squared magnitude x*conj(x)

◆ magnitude()

template<class Real = double>
NormType magnitude ( ) const

Magnitude (length of radius vector).

◆ phase()

template<class Real = double>
value_type phase ( ) const

Phase angle.

◆ operator[]() [1/2]

template<class Real = double>
reference operator[] ( int  i)

Access components as if number were a vector.

◆ operator[]() [2/2]

template<class Real = double>
const_reference operator[] ( int  i) const

Read components as if number were a vector.

◆ size()

template<class Real = double>
int size ( ) const

Length of complex number (always 2).


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

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.2