diff options
Diffstat (limited to 'externals/grill/fftease/src/leanconvert.c')
-rw-r--r-- | externals/grill/fftease/src/leanconvert.c | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/externals/grill/fftease/src/leanconvert.c b/externals/grill/fftease/src/leanconvert.c deleted file mode 100644 index d121d896..00000000 --- a/externals/grill/fftease/src/leanconvert.c +++ /dev/null @@ -1,84 +0,0 @@ -#include "pv.h" - -void leanconvert( float *S, float *C, int N2 , int amp, int ph) -{ -#if 1 - register int i; - - float a = fabs(S[0]); /* real value at f=0 */ - float b = fabs(S[1]); /* real value at f=Nyquist */ - - C[0] = a; - C[1] = 0; - S += 2,C += 2; - - if(amp && ph) { - for ( i = 1; i < N2; i++,S += 2,C += 2 ) { - C[0] = hypot( S[0], S[1] ); - C[1] = -atan2( S[1], S[0] ); - } - } - else if(amp) { - for ( i = 1; i < N2; i++,S += 2,C += 2 ) - C[0] = hypot( S[0], S[1] ); - } - else if(ph) { - for ( i = 1; i < N2; i++,S += 2,C += 2 ) - C[1] = -atan2( S[1], S[0] ); - } - - C[0] = b; - C[1] = 0; -#else - - int real, imag, - amp, phase; - float a, b; - int i; - - for ( i = 0; i <= N2; i++ ) { - imag = phase = ( real = amp = i<<1 ) + 1; - a = ( i == N2 ? S[1] : S[real] ); - b = ( i == 0 || i == N2 ? 0. : S[imag] ); - C[amp] = hypot( a, b ); - C[phase] = -atan2( b, a ); - } -#endif -} - - -/* unconvert essentially undoes what convert does, i.e., it - turns N2+1 PAIRS of amplitude and frequency values in - C into N2 PAIR of complex spectrum data (in rfft format) - in output array S; sampling rate R and interpolation factor - I are used to recompute phase values from frequencies */ - -void leanunconvert( float *C, float *S, int N2 ) -{ -#if 1 - register int i; - - S[0] = fabs(C[0]); - S[1] = fabs(C[N2*2]); - S += 2,C += 2; - - for (i = 1; i < N2; i++,S += 2,C += 2 ) { - S[0] = C[0] * cos( C[1] ); - S[1] = -C[0] * sin( C[1] ); - } -#else - int real, imag, - amp, phase; - float a, b; - register int i; - - for ( i = 0; i <= N2; i++ ) { - imag = phase = ( real = amp = i<<1 ) + 1; - S[real] = *(C+amp) * cos( *(C+phase) ); - if ( i != N2 ) - S[imag] = -*(C+amp) * sin( *(C+phase) ); - } - -#endif -} - |