Audacity 3.2.0
RealFFTf48x.h
Go to the documentation of this file.
1#ifndef __realfftf48x_h
2#define __realfftf48x_h
3
4#include "MemoryX.h"
5
6using fft_type = float;
7
8int SmallRB(int bits, int numberBits);
9
10enum {
16};
17
18struct FFTParam;
19
20/* wrapper functions. If passed -1 function choice will be made locally */
21void RealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
22void InverseRealFFTf1x(fft_type *, FFTParam*, int functionType=-1);
23void ReorderToTime1x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1);
24void ReorderToFreq1x(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut, int functionType=-1);
25void RealFFTf4x(fft_type *, FFTParam *, int functionType=-1);
26void InverseRealFFTf4x(fft_type *, FFTParam *, int functionType=-1);
27void ReorderToTime4x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1);
28void ReorderToFreq4x(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut, int functionType=-1);
29
30/* SinCosBRTable versions */
34void ReorderToFreq1xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
38void ReorderToFreq4xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
39
40/* Fast Math BR16 versions */
44void ReorderToFreq1xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
48void ReorderToFreq4xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
49
50/* Fast Math BR24 versions */
54void ReorderToFreq1xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
58void ReorderToFreq4xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
59
60/* SinCosTable virtual BR versions */
64void ReorderToFreq1xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
68void ReorderToFreq4xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
69
70/* SinCosTable BR16 versions */
74void ReorderToFreq1xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
78void ReorderToFreq4xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut);
79
80void TableUsage(int iMask);
81
82#ifndef M_PI
83#define M_PI 3.14159265358979323846 /* pi */
84#endif
85
86typedef struct {
87 float mSin;
88 float mCos;
90
92public:
96};
97
98int SmallRB(int bits, int numberBits);
99extern int (*SmallVRB[])(int bits);
100
101
102#endif
103
void RealFFTf4x(fft_type *, FFTParam *, int functionType=-1)
float fft_type
Definition: RealFFTf48x.h:6
void ReorderToFreq1x(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut, int functionType=-1)
void InverseRealFFTf4xFastMathBR16(fft_type *, FFTParam *)
void InverseRealFFTf4xSinCosTableVBR16(fft_type *, FFTParam *)
void RealFFTf4xFastMathBR16(fft_type *, FFTParam *)
void ReorderToTime1xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToFreq4xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void RealFFTf4xSinCosTableVBR16(fft_type *, FFTParam *)
void ReorderToTime1xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToTime1xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToFreq1xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void RealFFTf1xSinCosTableBR16(fft_type *, FFTParam *)
void ReorderToTime4xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void RealFFTf1xSinCosBRTable(fft_type *, FFTParam *)
void ReorderToFreq4xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void ReorderToFreq4xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void InverseRealFFTf1xSinCosTableVBR16(fft_type *, FFTParam *)
void TableUsage(int iMask)
void RealFFTf4xFastMathBR24(fft_type *, FFTParam *)
void ReorderToFreq4xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void ReorderToFreq1xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void ReorderToFreq1xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void RealFFTf1x(fft_type *, FFTParam *, int functionType=-1)
void InverseRealFFTf1xFastMathBR16(fft_type *, FFTParam *)
void ReorderToFreq1xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void ReorderToTime4x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1)
void ReorderToTime4xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void InverseRealFFTf1xSinCosTableBR16(fft_type *, FFTParam *)
void InverseRealFFTf4xSinCosBRTable(fft_type *, FFTParam *)
void InverseRealFFTf1xFastMathBR24(fft_type *, FFTParam *)
void ReorderToTime1xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToFreq4xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
void RealFFTf4xSinCosTableBR16(fft_type *, FFTParam *)
void ReorderToTime4xFastMathBR24(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToTime1x(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut, int functionType=-1)
void InverseRealFFTf4x(fft_type *, FFTParam *, int functionType=-1)
void RealFFTf1xFastMathBR16(fft_type *, FFTParam *)
void InverseRealFFTf1x(fft_type *, FFTParam *, int functionType=-1)
void InverseRealFFTf1xSinCosBRTable(fft_type *, FFTParam *)
void ReorderToTime1xFastMathBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void RealFFTf1xSinCosTableVBR16(fft_type *, FFTParam *)
void InverseRealFFTf4xSinCosTableBR16(fft_type *, FFTParam *)
int(* SmallVRB[])(int bits)
void ReorderToFreq4x(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut, int functionType=-1)
void RealFFTf1xFastMathBR24(fft_type *, FFTParam *)
void InverseRealFFTf4xFastMathBR24(fft_type *, FFTParam *)
void RealFFTf4xSinCosBRTable(fft_type *, FFTParam *)
int SmallRB(int bits, int numberBits)
void ReorderToTime4xSinCosTableVBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToTime4xSinCosTableBR16(FFTParam *hFFT, fft_type *buffer, fft_type *TimeOut)
void ReorderToFreq1xSinCosBRTable(FFTParam *hFFT, fft_type *buffer, fft_type *RealOut, fft_type *ImagOut)
@ FFT_SinCosBRTable
Definition: RealFFTf48x.h:11
@ FFT_SinCosTableBR16
Definition: RealFFTf48x.h:13
@ FFT_FastMathBR16
Definition: RealFFTf48x.h:14
@ FFT_SinCosTableVBR16
Definition: RealFFTf48x.h:12
@ FFT_FastMathBR24
Definition: RealFFTf48x.h:15
ArrayOf< SinCosStruct > mSinCosTable
Definition: RealFFTf48x.h:94
int mSinCosTablePow
Definition: RealFFTf48x.h:93