aboutsummaryrefslogtreecommitdiffstats
path: root/utils/convolvetest/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/convolvetest/main.c')
-rw-r--r--utils/convolvetest/main.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/utils/convolvetest/main.c b/utils/convolvetest/main.c
deleted file mode 100644
index f4a76c3..0000000
--- a/utils/convolvetest/main.c
+++ /dev/null
@@ -1,150 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "../../Transceiver52M/common/convolve.h"
-
-#define TESTVEC_LEN 1000
-#define DO_INIT 1
-
-float x_vect[TESTVEC_LEN];
-float y_vect[TESTVEC_LEN];
-float h_vect[TESTVEC_LEN];
-
-float *x;
-float *h;
-float *y;
-
-/* Generate some random values for testing */
-void gen_floats(float *vect, int len)
-{
- int i;
- for(i=0;i<len;i++) {
- vect[i] = (float)rand()/(float)(RAND_MAX);
- }
-}
-
-/* Reset testvectors */
-static void reset_testvec(int seed)
-{
- srand(seed);
- memset(x_vect,0,sizeof(x_vect));
- memset(y_vect,0,sizeof(y_vect));
- memset(h_vect,0,sizeof(h_vect));
-
- x=x_vect + TESTVEC_LEN/2;
- y=y_vect + TESTVEC_LEN/2;
- h=h_vect + TESTVEC_LEN/2;
-
- gen_floats(x_vect,TESTVEC_LEN);
- gen_floats(h_vect,TESTVEC_LEN);
-}
-
-/* Show float vector data cut and paste friendly */
-static void dump_floats(float *vect, int len, char *name)
-{
- int i;
-
- printf("float %s[] = {", name);
- for(i=0;i<len;i++) {
-
- printf("%f",vect[i]);
-
- if(i<len-1)
- printf(",");
- }
- printf("}\n");
-}
-
-/* Test complex convolution */
-static void test_convolve_complex(int h_len)
-{
- int x_len;
- int y_len;
- int start;
- int len;
- int step;
- int offset;
-
- x_len=34;
- y_len=26;
- start=8;
- len=26;
- step=1;
- offset=1;
- reset_testvec(0);
- dump_floats(x,x_len,"x");
- printf("\n");
- dump_floats(h,h_len,"h");
- printf("\n");
- convolve_complex(x, x_len, h, h_len, y, y_len, start, len, step, offset);
- dump_floats(y,y_len,"y");
- printf("\n");
-}
-
-/* Test real convolution */
-static void test_convolve_real(int h_len)
-{
- int x_len;
- int y_len;
- int start;
- int len;
- int step;
- int offset;
-
- x_len=34;
- y_len=26;
- start=8;
- len=26;
- step=1;
- offset=1;
- reset_testvec(0);
- dump_floats(x,x_len,"x");
- printf("\n");
- dump_floats(h,h_len,"h");
- printf("\n");
- convolve_real(x, x_len, h, h_len, y, y_len, start, len, step, offset);
- dump_floats(y,y_len,"y");
- printf("\n");
-}
-
-int main(void)
-{
-#if DO_INIT == 1
- convolve_init();
-#endif
-
- printf("==== TEST COMPLEX BASE IMPLEMENTATION ====\n");
- test_convolve_complex(17);
-
- printf("==== TEST COMPLEX SSE3 IMPLEMENTATION: (h_len%%4=0) ====\n");
- test_convolve_complex(20);
-
- printf("==== TEST COMPLEX SSE3 IMPLEMENTATION: (h_len%%8=0) ====\n");
- test_convolve_complex(16);
-
- printf("\n");
- printf("\n");
-
- printf("==== TEST REAL BASE IMPLEMENTATION ====\n");
- test_convolve_real(17);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (hlen=4) ====\n");
- test_convolve_real(4);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (hlen=8) ====\n");
- test_convolve_real(8);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (hlen=12) ====\n");
- test_convolve_real(12);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (hlen=16) ====\n");
- test_convolve_real(16);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (hlen=20) ====\n");
- test_convolve_real(20);
-
- printf("==== TEST REAL SSE3 IMPLEMENTATION (h_len%%4=0) ====\n");
- test_convolve_real(24);
-
- return 0;
-}