## transform utilities public functions

 DFT DirectDFT DirectIDFT DirectMDCT DirectiIMDCT FFT FastIMDCT FastMDCT IDFT IFFT IMDCT MDCT RealFFT
Depends on the classes: Block and ComplexD .
Block<ComplexD> DFT(Block<ComplexD>& inputSignal);
Selects DirectDFT() or FFT() as appropriate.

Block<ComplexD> DirectDFT(Block<ComplexD>& inputSignal);
Direct Discrete Fourier Transform. Algorithm computational order: O(N^2). Returns the complex spectrum of the given complex input signal. Quickly becomes slower than the FFT if the length of the input block is greater than about 100.

Block<ComplexD> DirectIDFT(Block<ComplexD>& inputSpectrum);
Direct Inverse Discrete Fourier Transform. Algorithm computational order: O(N^2). Returns the complex spectrum of the given complex input signal. Quickly becomes slower than the IFFT if the length of the input block is greater than about 100.

Block<type> DirectMDCT(Block<type>& inputSignal);
Modified Discrete Cosine Transform. Algorithm computational order: O(N^2). Can handle Block<float> and Block<double> as input.

Block<type> DirectIMDCT(Block<type>& inputSpectrum);
Inverse Modified Discrete Cosine Transform. Algorithm computational order: O(N^2). Can handle Block<float> and Block<double> as input.

Block<ComplexD> FFT(const Block<ComplexD>& inputSignal);
Fast Fourier Transform. Algorithm computational order: O(N Log N). Returns the complex spectrum of the given complex input signal. Length of Block must be a power of 2.

Block<type> FastIMDCT(Block<type>& inputSpectrum);
Inverse Modified Discrete Cosine Transform. Algorithm computational order: O(N Log N). Can handle Block<float> and Block<double> as input.

Block<type> FastMDCT(Block<type>& inputSignal);
Modified Discrete Cosine Transform. Algorithm computational order: (N Log N). Can handle Block<float> and Block<double> as input.

Block<ComplexD> IDFT(Block<ComplexD>& inputSpectrum);
Selects DirectIDFT or IFFT as appropriate.

Block<ComplexD> IFFT(const Block<ComplexD>& inputSpectrum);
Inverse Fast Fourier Transform. Algorithm computational order: O(N Log N). Returns the complex signal of the given complex input spectrum. Length of Block must be a power of 2.

Block<type> DirectIMDCT(Block<type>& inputSpectrum);
Inverse Modified Discrete Cosine Transform. Algorithm computational order: O(N^2). Can handle Block<float> and Block<double> as input.

Block<type> MDCT(Block<type<& inputSignal);
Selects FastMDCT or DirectMDCT as appropriate.

Block<ComplexD> RealFFT(Block<type>& realSignal);
Calculates the complex spectrum of a real signal. Uses a N/2 length FFT and therfore more efficient than the plain FFT for purely real signals. Can accept Block<float> or Block<double>. Input signal length must be a power of 2.

```

```