pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
Public Member Functions
FFTEngineBase< float > Class Template Reference

A platform independent FFT processing engine. More...

Inherits SmartPointerContainer< SmartPointerType, enableWeak >.

List of all members.

Public Member Functions

 FFTEngineBase (const long length=0) throw ()
 Create a new engine with a particular FFT size.
 FFTEngineBase (FFTEngineBase const &copy) throw ()
 Copy constructor.
FFTEngineBase & operator= (FFTEngineBase const &other) throw ()
 Assignment operator.
void forward (float *output, const float *input) throw ()
 Apply the FFT to the input and place the result in output.
void forward (Buffer &output, Buffer const &input) throw ()
 Apply the FFT to the input and place the result in output.
void inverse (float *output, const float *input) throw ()
 Apply the inverse-FFT to the input and place the result in output.
void inverse (Buffer &output, Buffer const &input) throw ()
 Apply the inverse-FFT to the input and place the result in output.
long length () const
 Get the FFT size.
long halfLength () const
 Get half FFT size.

Detailed Description

template<>
class FFTEngineBase< float >

A platform independent FFT processing engine.

This uses Plank to decide which underlying processing engine to use (e.g., FFTReal or vDSP).


Constructor & Destructor Documentation

FFTEngineBase< float >::FFTEngineBase ( const long  length = 0) throw () [inline]

Create a new engine with a particular FFT size.

Parameters:
lengthThe FFT size - this must be a power of 2 or less than 16 (where it will specify the log2 FFT size e.g., 8 = pow(2,8) = 256).
FFTEngineBase< float >::FFTEngineBase ( FFTEngineBase< float > const &  copy) throw () [inline]

Copy constructor.

Note that a deep copy is not made, the copy will refer to exactly the same data.


Member Function Documentation

void FFTEngineBase< float >::forward ( float *  output,
const float *  input 
) throw () [inline]

Apply the FFT to the input and place the result in output.

This can't be performed in-place (i.e., input and output must not point to the same data or overlap).

void FFTEngineBase< float >::forward ( Buffer output,
Buffer const &  input 
) throw () [inline]

Apply the FFT to the input and place the result in output.

This can't be performed in-place (i.e., input and output must not point to the same data or overlap).

long FFTEngineBase< float >::halfLength ( ) const [inline]

Get half FFT size.

This is just as a convenience as it is already cached for efficiency.

void FFTEngineBase< float >::inverse ( Buffer output,
Buffer const &  input 
) throw () [inline]

Apply the inverse-FFT to the input and place the result in output.

This can't be performed in-place (i.e., input and output must not point to the same data or overlap).

void FFTEngineBase< float >::inverse ( float *  output,
const float *  input 
) throw () [inline]

Apply the inverse-FFT to the input and place the result in output.

This can't be performed in-place (i.e., input and output must not point to the same data or overlap).

long FFTEngineBase< float >::length ( ) const [inline]

Get the FFT size.

FFTEngineBase& FFTEngineBase< float >::operator= ( FFTEngineBase< float > const &  other) throw () [inline]

Assignment operator.


The documentation for this class was generated from the following file:
 All Classes Functions Typedefs Enumerations Enumerator Properties