summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAnthony Blake <anthonix@me.com>2013-01-07 15:17:01 +1300
committerAnthony Blake <anthonix@me.com>2013-01-07 15:17:01 +1300
commit593b97ffea2c2a65f3d5b157815ccf8632719811 (patch)
treeb38ed1605ca18a596552506a3b66971c99440eca /tests
parent0a61891c85de1c26881ebc555dadbcebb9665417 (diff)
downloadffts-593b97ffea2c2a65f3d5b157815ccf8632719811.zip
ffts-593b97ffea2c2a65f3d5b157815ccf8632719811.tar.gz
Android doesn't have long double math functions
Diffstat (limited to 'tests')
-rw-r--r--tests/test.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/tests/test.c b/tests/test.c
index 326e7e2..31437ac 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -44,11 +44,26 @@
#define PI 3.1415926535897932384626433832795028841971693993751058209
float impulse_error(int N, int sign, float *data) {
+#ifdef __ANDROID__
+ double delta_sum = 0.0f;
+ double sum = 0.0f;
+#else
long double delta_sum = 0.0f;
long double sum = 0.0f;
+#endif
int i;
for(i=0;i<N;i++) {
+#ifdef __ANDROID__
+ double re, im;
+ if(sign < 0) {
+ re = cos(2 * PI * (double)i / (double)N);
+ im = -sin(2 * PI * (double)i / (double)N);
+ }else{
+ re = cos(2 * PI * (double)i / (double)N);
+ im = sin(2 * PI * (double)i / (double)N);
+ }
+#else
long double re, im;
if(sign < 0) {
re = cosl(2 * PI * (long double)i / (long double)N);
@@ -57,7 +72,7 @@ float impulse_error(int N, int sign, float *data) {
re = cosl(2 * PI * (long double)i / (long double)N);
im = sinl(2 * PI * (long double)i / (long double)N);
}
-
+#endif
sum += re * re + im * im;
re = re - data[2*i];
@@ -66,8 +81,11 @@ float impulse_error(int N, int sign, float *data) {
delta_sum += re * re + im * im;
}
-
+#ifdef __ANDROID__
+ return sqrt(delta_sum) / sqrt(sum);
+#else
return sqrtl(delta_sum) / sqrtl(sum);
+#endif
}
int
OpenPOWER on IntegriCloud