|
|
|
@ -62,8 +62,8 @@ for (i1 = 0; i1 < Nroot_1; i1++){ |
|
|
|
parts of ffts1 |
|
|
|
*************************************************/ |
|
|
|
|
|
|
|
inline void bitrevR2(float *ioptr, long M, short *BRLow); |
|
|
|
inline void bitrevR2(float *ioptr, long M, short *BRLow){ |
|
|
|
static inline void bitrevR2(float *ioptr, long M, short *BRLow); |
|
|
|
static inline void bitrevR2(float *ioptr, long M, short *BRLow){ |
|
|
|
/*** bit reverse and first radix 2 stage of forward or inverse fft ***/ |
|
|
|
float f0r; |
|
|
|
float f0i; |
|
|
|
@ -199,8 +199,8 @@ for (; ioptr < iolimit; ioptr += POW2(M/2+1)){ |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
inline void fft2pt(float *ioptr); |
|
|
|
inline void fft2pt(float *ioptr){ |
|
|
|
static inline void fft2pt(float *ioptr); |
|
|
|
static inline void fft2pt(float *ioptr){ |
|
|
|
/*** RADIX 2 fft ***/ |
|
|
|
float f0r, f0i, f1r, f1i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -230,8 +230,8 @@ ioptr[3] = f1i; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inline void fft4pt(float *ioptr); |
|
|
|
inline void fft4pt(float *ioptr){ |
|
|
|
static inline void fft4pt(float *ioptr); |
|
|
|
static inline void fft4pt(float *ioptr){ |
|
|
|
/*** RADIX 4 fft ***/ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float t0r, t0i, t1r, t1i; |
|
|
|
@ -285,8 +285,8 @@ ioptr[6] = f3r; |
|
|
|
ioptr[7] = f3i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void fft8pt(float *ioptr); |
|
|
|
inline void fft8pt(float *ioptr){ |
|
|
|
static inline void fft8pt(float *ioptr); |
|
|
|
static inline void fft8pt(float *ioptr){ |
|
|
|
/*** RADIX 8 fft ***/ |
|
|
|
float w0r = 1.0/MYROOT2; /* cos(pi/4) */ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
@ -404,8 +404,8 @@ ioptr[14] = f6r; |
|
|
|
ioptr[15] = f6i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void bfR2(float *ioptr, long M, long NDiffU); |
|
|
|
inline void bfR2(float *ioptr, long M, long NDiffU){ |
|
|
|
static inline void bfR2(float *ioptr, long M, long NDiffU); |
|
|
|
static inline void bfR2(float *ioptr, long M, long NDiffU){ |
|
|
|
/*** 2nd radix 2 stage ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -419,7 +419,7 @@ float *p0r, *p1r, *p2r, *p3r; |
|
|
|
|
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; |
|
|
|
const float Two = 2.0; |
|
|
|
/* const float Two = 2.0; */ |
|
|
|
|
|
|
|
pinc = NDiffU * 2; // 2 floats per complex |
|
|
|
pnext = pinc * 4; |
|
|
|
@ -513,8 +513,8 @@ for (SameUCnt = NSameU; SameUCnt > 0 ; SameUCnt--){ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
inline void bfR4(float *ioptr, long M, long NDiffU); |
|
|
|
inline void bfR4(float *ioptr, long M, long NDiffU){ |
|
|
|
static inline void bfR4(float *ioptr, long M, long NDiffU); |
|
|
|
static inline void bfR4(float *ioptr, long M, long NDiffU){ |
|
|
|
/*** 1 radix 4 stage ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -722,8 +722,8 @@ f4i = f4i * Two - f6i; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt); |
|
|
|
inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){ |
|
|
|
static inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt); |
|
|
|
static inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){ |
|
|
|
/*** RADIX 8 Stages ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -1126,8 +1126,8 @@ default: |
|
|
|
parts of iffts1 |
|
|
|
*************************************************/ |
|
|
|
|
|
|
|
inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale); |
|
|
|
inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale){ |
|
|
|
static inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale); |
|
|
|
static inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale){ |
|
|
|
/*** scaled bit reverse and first radix 2 stage forward or inverse fft ***/ |
|
|
|
float f0r; |
|
|
|
float f0i; |
|
|
|
@ -1263,8 +1263,8 @@ for (; ioptr < iolimit; ioptr += POW2(M/2+1)){ |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
inline void ifft2pt(float *ioptr, float scale); |
|
|
|
inline void ifft2pt(float *ioptr, float scale){ |
|
|
|
static inline void ifft2pt(float *ioptr, float scale); |
|
|
|
static inline void ifft2pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 2 ifft ***/ |
|
|
|
float f0r, f0i, f1r, f1i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -1293,8 +1293,8 @@ ioptr[2] = scale*f1r; |
|
|
|
ioptr[3] = scale*f1i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void ifft4pt(float *ioptr, float scale); |
|
|
|
inline void ifft4pt(float *ioptr, float scale){ |
|
|
|
static inline void ifft4pt(float *ioptr, float scale); |
|
|
|
static inline void ifft4pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 4 ifft ***/ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float t0r, t0i, t1r, t1i; |
|
|
|
@ -1348,8 +1348,8 @@ ioptr[6] = scale*f3r; |
|
|
|
ioptr[7] = scale*f3i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void ifft8pt(float *ioptr, float scale); |
|
|
|
inline void ifft8pt(float *ioptr, float scale){ |
|
|
|
static inline void ifft8pt(float *ioptr, float scale); |
|
|
|
static inline void ifft8pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 8 ifft ***/ |
|
|
|
float w0r = 1.0/MYROOT2; /* cos(pi/4) */ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
@ -1468,8 +1468,8 @@ ioptr[14] = scale*f6r; |
|
|
|
ioptr[15] = scale*f6i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void ibfR2(float *ioptr, long M, long NDiffU); |
|
|
|
inline void ibfR2(float *ioptr, long M, long NDiffU){ |
|
|
|
static inline void ibfR2(float *ioptr, long M, long NDiffU); |
|
|
|
static inline void ibfR2(float *ioptr, long M, long NDiffU){ |
|
|
|
/*** 2nd radix 2 stage ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -1483,7 +1483,7 @@ float *p0r, *p1r, *p2r, *p3r; |
|
|
|
|
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; |
|
|
|
const float Two = 2.0; |
|
|
|
/* const float Two = 2.0; */ |
|
|
|
|
|
|
|
pinc = NDiffU * 2; // 2 floats per complex |
|
|
|
pnext = pinc * 4; |
|
|
|
@ -1577,8 +1577,8 @@ for (SameUCnt = NSameU; SameUCnt > 0 ; SameUCnt--){ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
inline void ibfR4(float *ioptr, long M, long NDiffU); |
|
|
|
inline void ibfR4(float *ioptr, long M, long NDiffU){ |
|
|
|
static inline void ibfR4(float *ioptr, long M, long NDiffU); |
|
|
|
static inline void ibfR4(float *ioptr, long M, long NDiffU){ |
|
|
|
/*** 1 radix 4 stage ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -1786,8 +1786,8 @@ f4i = f4i * Two - f6i; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
inline void ibfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt); |
|
|
|
inline void ibfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){ |
|
|
|
static inline void ibfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt); |
|
|
|
static inline void ibfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){ |
|
|
|
/*** RADIX 8 Stages ***/ |
|
|
|
unsigned long pos; |
|
|
|
unsigned long posi; |
|
|
|
@ -2194,8 +2194,8 @@ default: |
|
|
|
parts of rffts1 |
|
|
|
*************************************************/ |
|
|
|
|
|
|
|
inline void rfft1pt(float *ioptr); |
|
|
|
inline void rfft1pt(float *ioptr){ |
|
|
|
static inline void rfft1pt(float *ioptr); |
|
|
|
static inline void rfft1pt(float *ioptr){ |
|
|
|
/*** RADIX 2 rfft ***/ |
|
|
|
float f0r, f0i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -2213,8 +2213,8 @@ ioptr[0] = t0r; |
|
|
|
ioptr[1] = t0i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rfft2pt(float *ioptr); |
|
|
|
inline void rfft2pt(float *ioptr){ |
|
|
|
static inline void rfft2pt(float *ioptr); |
|
|
|
static inline void rfft2pt(float *ioptr){ |
|
|
|
/*** RADIX 4 rfft ***/ |
|
|
|
float f0r, f0i, f1r, f1i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -2246,8 +2246,8 @@ ioptr[2] = f1r; |
|
|
|
ioptr[3] = f1i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rfft4pt(float *ioptr); |
|
|
|
inline void rfft4pt(float *ioptr){ |
|
|
|
static inline void rfft4pt(float *ioptr); |
|
|
|
static inline void rfft4pt(float *ioptr){ |
|
|
|
/*** RADIX 8 rfft ***/ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float t0r, t0i, t1r, t1i; |
|
|
|
@ -2319,8 +2319,8 @@ ioptr[6] = scale*f3r; |
|
|
|
ioptr[7] = scale*f3i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rfft8pt(float *ioptr); |
|
|
|
inline void rfft8pt(float *ioptr){ |
|
|
|
static inline void rfft8pt(float *ioptr); |
|
|
|
static inline void rfft8pt(float *ioptr){ |
|
|
|
/*** RADIX 16 rfft ***/ |
|
|
|
float w0r = 1.0/MYROOT2; /* cos(pi/4) */ |
|
|
|
float w1r = MYCOSPID8; /* cos(pi/8) */ |
|
|
|
@ -2478,8 +2478,8 @@ ioptr[14] = scale*f6r; |
|
|
|
ioptr[15] = scale*f6i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void frstage(float *ioptr, long M, float *Utbl); |
|
|
|
inline void frstage(float *ioptr, long M, float *Utbl){ |
|
|
|
static inline void frstage(float *ioptr, long M, float *Utbl); |
|
|
|
static inline void frstage(float *ioptr, long M, float *Utbl){ |
|
|
|
/* Finish RFFT */ |
|
|
|
|
|
|
|
unsigned long pos; |
|
|
|
@ -2688,8 +2688,8 @@ default: |
|
|
|
parts of riffts1 |
|
|
|
*************************************************/ |
|
|
|
|
|
|
|
inline void rifft1pt(float *ioptr, float scale); |
|
|
|
inline void rifft1pt(float *ioptr, float scale){ |
|
|
|
static inline void rifft1pt(float *ioptr, float scale); |
|
|
|
static inline void rifft1pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 2 rifft ***/ |
|
|
|
float f0r, f0i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -2707,8 +2707,8 @@ ioptr[0] = scale*t0r; |
|
|
|
ioptr[1] = scale*t0i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rifft2pt(float *ioptr, float scale); |
|
|
|
inline void rifft2pt(float *ioptr, float scale){ |
|
|
|
static inline void rifft2pt(float *ioptr, float scale); |
|
|
|
static inline void rifft2pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 4 rifft ***/ |
|
|
|
float f0r, f0i, f1r, f1i; |
|
|
|
float t0r, t0i; |
|
|
|
@ -2741,8 +2741,8 @@ ioptr[2] = scale*f1r; |
|
|
|
ioptr[3] = scale*f1i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rifft4pt(float *ioptr, float scale); |
|
|
|
inline void rifft4pt(float *ioptr, float scale){ |
|
|
|
static inline void rifft4pt(float *ioptr, float scale); |
|
|
|
static inline void rifft4pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 8 rifft ***/ |
|
|
|
float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; |
|
|
|
float t0r, t0i, t1r, t1i; |
|
|
|
@ -2812,8 +2812,8 @@ ioptr[6] = scale*f3r; |
|
|
|
ioptr[7] = scale*f3i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void rifft8pt(float *ioptr, float scale); |
|
|
|
inline void rifft8pt(float *ioptr, float scale){ |
|
|
|
static inline void rifft8pt(float *ioptr, float scale); |
|
|
|
static inline void rifft8pt(float *ioptr, float scale){ |
|
|
|
/*** RADIX 16 rifft ***/ |
|
|
|
float w0r = 1.0/MYROOT2; /* cos(pi/4) */ |
|
|
|
float w1r = MYCOSPID8; /* cos(pi/8) */ |
|
|
|
@ -2969,8 +2969,8 @@ ioptr[14] = scale*f6r; |
|
|
|
ioptr[15] = scale*f6i; |
|
|
|
} |
|
|
|
|
|
|
|
inline void ifrstage(float *ioptr, long M, float *Utbl); |
|
|
|
inline void ifrstage(float *ioptr, long M, float *Utbl){ |
|
|
|
static inline void ifrstage(float *ioptr, long M, float *Utbl); |
|
|
|
static inline void ifrstage(float *ioptr, long M, float *Utbl){ |
|
|
|
/* Start RIFFT */ |
|
|
|
|
|
|
|
unsigned long pos; |
|
|
|
|