1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-21 00:17:16 +01:00

Update Nyquist to v3.09.

This commit is contained in:
Leland Lucius
2015-04-07 22:10:17 -05:00
parent f88b27e6d8
commit 9fb0ce5b82
358 changed files with 26327 additions and 7043 deletions

View File

@@ -1,6 +1,8 @@
/*******************************************************************
lower level fft stuff including routines called in fftext.c and fft2d.c
*******************************************************************/
/* inline declarations modified by RBD for C99 compiler */
#include "fftlib.h"
#include <math.h>
#define MCACHE (11-(sizeof(float)/8)) // fft's with M bigger than this bust primary cache
@@ -61,8 +63,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){
//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;
@@ -198,8 +200,8 @@ for (; ioptr < iolimit; ioptr += POW2(M/2+1)){
};
}
inline void fft2pt(float *ioptr);
inline void fft2pt(float *ioptr){
//inline void fft2pt(float *ioptr);
static inline void fft2pt(float *ioptr){
/*** RADIX 2 fft ***/
float f0r, f0i, f1r, f1i;
float t0r, t0i;
@@ -229,8 +231,8 @@ ioptr[3] = f1i;
}
inline void fft4pt(float *ioptr);
inline void fft4pt(float *ioptr){
//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;
@@ -284,8 +286,8 @@ ioptr[6] = f3r;
ioptr[7] = f3i;
}
inline void fft8pt(float *ioptr);
inline void fft8pt(float *ioptr){
//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;
@@ -403,8 +405,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){
//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;
@@ -512,8 +514,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){
//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;
@@ -721,8 +723,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){
// 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;
@@ -1125,8 +1127,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){
// 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;
@@ -1262,8 +1264,8 @@ for (; ioptr < iolimit; ioptr += POW2(M/2+1)){
};
}
inline void ifft2pt(float *ioptr, float scale);
inline void ifft2pt(float *ioptr, float scale){
//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;
@@ -1292,8 +1294,8 @@ ioptr[2] = scale*f1r;
ioptr[3] = scale*f1i;
}
inline void ifft4pt(float *ioptr, float scale);
inline void ifft4pt(float *ioptr, float scale){
// 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;
@@ -1347,8 +1349,8 @@ ioptr[6] = scale*f3r;
ioptr[7] = scale*f3i;
}
inline void ifft8pt(float *ioptr, float scale);
inline void ifft8pt(float *ioptr, float scale){
//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;
@@ -1467,8 +1469,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){
//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;
@@ -1576,8 +1578,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){
//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;
@@ -1785,8 +1787,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){
//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;
@@ -2193,8 +2195,8 @@ default:
parts of rffts1
*************************************************/
inline void rfft1pt(float *ioptr);
inline void rfft1pt(float *ioptr){
//inline void rfft1pt(float *ioptr);
static inline void rfft1pt(float *ioptr){
/*** RADIX 2 rfft ***/
float f0r, f0i;
float t0r, t0i;
@@ -2212,8 +2214,8 @@ ioptr[0] = t0r;
ioptr[1] = t0i;
}
inline void rfft2pt(float *ioptr);
inline void rfft2pt(float *ioptr){
//inline void rfft2pt(float *ioptr);
static inline void rfft2pt(float *ioptr){
/*** RADIX 4 rfft ***/
float f0r, f0i, f1r, f1i;
float t0r, t0i;
@@ -2245,8 +2247,8 @@ ioptr[2] = f1r;
ioptr[3] = f1i;
}
inline void rfft4pt(float *ioptr);
inline void rfft4pt(float *ioptr){
//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;
@@ -2318,8 +2320,8 @@ ioptr[6] = scale*f3r;
ioptr[7] = scale*f3i;
}
inline void rfft8pt(float *ioptr);
inline void rfft8pt(float *ioptr){
//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) */
@@ -2477,8 +2479,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){
//inline void frstage(float *ioptr, long M, float *Utbl);
static inline void frstage(float *ioptr, long M, float *Utbl){
/* Finish RFFT */
unsigned long pos;
@@ -2687,8 +2689,8 @@ default:
parts of riffts1
*************************************************/
inline void rifft1pt(float *ioptr, float scale);
inline void rifft1pt(float *ioptr, float scale){
//inline void rifft1pt(float *ioptr, float scale);
static inline void rifft1pt(float *ioptr, float scale){
/*** RADIX 2 rifft ***/
float f0r, f0i;
float t0r, t0i;
@@ -2706,8 +2708,8 @@ ioptr[0] = scale*t0r;
ioptr[1] = scale*t0i;
}
inline void rifft2pt(float *ioptr, float scale);
inline void rifft2pt(float *ioptr, float scale){
//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;
@@ -2740,8 +2742,8 @@ ioptr[2] = scale*f1r;
ioptr[3] = scale*f1i;
}
inline void rifft4pt(float *ioptr, float scale);
inline void rifft4pt(float *ioptr, float scale){
//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;
@@ -2811,8 +2813,8 @@ ioptr[6] = scale*f3r;
ioptr[7] = scale*f3i;
}
inline void rifft8pt(float *ioptr, float scale);
inline void rifft8pt(float *ioptr, float scale){
//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) */
@@ -2968,8 +2970,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){
//inline void ifrstage(float *ioptr, long M, float *Utbl);
static inline void ifrstage(float *ioptr, long M, float *Utbl){
/* Start RIFFT */
unsigned long pos;