![]() |
pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
|
A platform independent FFT processing engine. More...
Inherits SmartPointerContainer< SmartPointerType, enableWeak >.
Public Member Functions | |
FFTEngineBase (const long length=0) throw () | |
Create a new engine with a particular FFT size. | |
FFTEngineBase (FFTEngineBase const ©) 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. |
A platform independent FFT processing engine.
This uses Plank to decide which underlying processing engine to use (e.g., FFTReal or vDSP).
FFTEngineBase< float >::FFTEngineBase | ( | const long | length = 0 | ) | throw () [inline] |
Create a new engine with a particular FFT size.
length | The 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.
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).
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.
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.