All Classes Namespaces Functions Variables Enumerations Enumerator Modules Pages
Public Member Functions | List of all members
IppFFT Class Reference

Public Member Functions

 IppFFT (DataType typeToUse=DataType::ComplexFloat, int maxPowerOfTwo=IPP_FFT_MAX_POWER_OF_TWO, const int flagToUse=8)
 
void realFFTInplace (float *data, int size) const
 
void realFFTInverseInplace (float *data, int size) const
 
void complexFFTInplace (float *data, int size) const
 
void complexFFTInverseInplace (float *data, int size) const
 
void realFFT (const float *in, float *out, int size) const
 
void realFFTInverse (const float *in, float *out, int size) const
 
void complexFFT (const float *in, float *out, int size) const
 
void complexFFTInverse (const float *in, float *out, int size) const
 
void realFFTInplace (double *data, int size) const
 
void realFFTInverseInplace (double *data, int size) const
 
void complexFFTInplace (double *data, int size) const
 
void complexFFTInverseInplace (double *data, int size) const
 

Detailed Description

A wrapper around the Intel IPP FFT routines.

It uses RAII to manage all required buffers & datas. In order to use it, create an instance once and then call the routines:

IppFFT fft(IppFFT:DataType::ComplexFloat);

fft.realFFT(data, 512);

It is not templated for speed, but it throws assertions if you call it on the wrong type.

Constructor & Destructor Documentation

IppFFT ( DataType  typeToUse = DataType::ComplexFloat,
int  maxPowerOfTwo = IPP_FFT_MAX_POWER_OF_TWO,
const int  flagToUse = 8 
)

Creates a IPP FFT object. The initialisation time is rather slow, but then it will unleash its power because it allocates all necessary buffers once.

Member Function Documentation

void complexFFT ( const float *  in,
float *  out,
int  size 
) const

Complex inplace FFT (input is aligned Complex<float> array, size is power of two.)

void complexFFTInplace ( float *  data,
int  size 
) const

Complex inplace FFT (input is aligned Complex<float> array, size is power of two.)

void complexFFTInplace ( double *  data,
int  size 
) const

Complex inplace FFT (input is aligned Complex<double> array, size is power of two.)

void complexFFTInverse ( const float *  in,
float *  out,
int  size 
) const

Complex inverse inplace FFT (input is aligned float array, size is power of two.)

void complexFFTInverseInplace ( float *  data,
int  size 
) const

Complex inverse inplace FFT (input is aligned float array, size is power of two.)

void complexFFTInverseInplace ( double *  data,
int  size 
) const

Complex inverse inplace FFT (input is aligned Complex<double> array, size is power of two.)

void realFFT ( const float *  in,
float *  out,
int  size 
) const

Real inplace FFT (input is aligned float array, size is power of two.)

Input: d[] = re[0],re[1],..,re[size-1]. Output: d[] = re[0],re[size/2],re[1],im[1],..,re[size/2-1],im[size/2-1].

void realFFTInplace ( float *  data,
int  size 
) const

Real inplace FFT (input is aligned float array, size is power of two.)

Input: d[] = re[0],re[1],..,re[size-1]. Output: d[] = re[0],re[size/2],re[1],im[1],..,re[size/2-1],im[size/2-1].

void realFFTInplace ( double *  data,
int  size 
) const

Real inplace FFT (input is aligned double array, size is power of two.)

Input: data[] = re[0],re[1],..,re[size-1]. Output: data[] = re[0],re[size/2],re[1],im[1],..,re[size/2-1],im[size/2-1].

void realFFTInverse ( const float *  in,
float *  out,
int  size 
) const

Real inplace FFT (input is aligned float array, size is power of two.)

void realFFTInverseInplace ( float *  data,
int  size 
) const

Real inplace FFT (input is aligned float array, size is power of two.)

void realFFTInverseInplace ( double *  data,
int  size 
) const

Real inplace inverse FFT (input is aligned double array, size is power of two.)

©2017 HISE. This documentation is autogenerated from the HISE source code using Doxygen.