aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/fftease/src/leanconvert.c
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/fftease/src/leanconvert.c')
-rw-r--r--externals/grill/fftease/src/leanconvert.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/externals/grill/fftease/src/leanconvert.c b/externals/grill/fftease/src/leanconvert.c
new file mode 100644
index 00000000..36b1452a
--- /dev/null
+++ b/externals/grill/fftease/src/leanconvert.c
@@ -0,0 +1,19 @@
+#include "pv.h"
+
+void leanconvert( float *S, float *C, int N2 )
+{
+
+ 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 );
+ }
+}
+