16 #if !defined(ffft_FFTReal_HEADER_INCLUDED)
17 #define ffft_FFTReal_HEADER_INCLUDED
21 #pragma warning(4 : 4250) // "Inherits via dominance."
59 enum { TRIGO_BD_LIMIT = 12 };
61 typedef OscSinCos<DataType> OscType;
64 void init_trigo_lut();
65 void init_trigo_osc();
67 ffft_FORCEINLINE
const long *get_br_ptr()
const;
68 ffft_FORCEINLINE
const DataType *get_trigo_ptr(
int level)
const;
69 ffft_FORCEINLINE
long get_trigo_level_index(
int level)
const;
74 inline void compute_direct_pass_n(
DataType df[],
const DataType sf[],
int pass)
const;
75 inline void compute_direct_pass_n_lut(
DataType df[],
const DataType sf[],
int pass)
const;
76 inline void compute_direct_pass_n_osc(
DataType df[],
const DataType sf[],
int pass)
const;
79 inline void compute_inverse_pass_n(
DataType df[],
const DataType sf[],
int pass)
const;
80 inline void compute_inverse_pass_n_osc(
DataType df[],
const DataType sf[],
int pass)
const;
81 inline void compute_inverse_pass_n_lut(
DataType df[],
const DataType sf[],
int pass)
const;
82 inline void compute_inverse_pass_3(
DataType df[],
const DataType sf[])
const;
87 DynArray<long> _br_lut;
88 DynArray<DataType> _trigo_lut;
89 mutable DynArray<DataType> _buffer;
90 mutable DynArray<OscType> _trigo_osc;
96 FFTReal(
const FFTReal &other);
97 FFTReal &operator=(
const FFTReal &other);
98 bool operator==(
const FFTReal &other);
99 bool operator!=(
const FFTReal &other);
107 #endif // ffft_FFTReal_HEADER_INCLUDED
void do_fft(DataType f[], const DataType x[]) const
DataType * use_buffer() const
void do_ifft(const DataType f[], DataType x[]) const
void rescale(DataType x[]) const