blob: b2abb0943f87fba0d49e7e5145f854595fa5396b [file] [log] [blame]
Bill Yi4e213d52015-06-23 13:53:11 -07001/* Verify correctness of the sum-of-square routines */
2#include <stdio.h>
3#include <stdlib.h>
4#include <time.h>
5
6/* These values should trigger leading/trailing array fragment handling */
7#define NSAMP 200002
8#define OFFSET 1
9
10long long sumsq_wq(signed short *in,int cnt);
11long long sumsq_wq_ref(signed short *in,int cnt);
12
13int main(){
14 int i;
15 long long result,rresult;
16 signed short samples[NSAMP];
17
18 srandom(time(NULL));
19
20 for(i=0;i<NSAMP;i++)
21 samples[i] = random() & 0xffff;
22
23 rresult = sumsq_wq(&samples[OFFSET],NSAMP-OFFSET);
24 result = sumsq_wq(&samples[OFFSET],NSAMP-OFFSET);
25 if(result == rresult){
26 printf("OK\n");
27 } else {
28 printf("sum mismatch: %lld != %lld\n",result,rresult);
29 }
30 exit(0);
31}
32
33long long sumsq_wq_ref(signed short *in,int cnt){
34 long long sum = 0;
35 int i;
36
37 for(i=0;i<cnt;i++){
38 sum += (long)in[i] * in[i];
39 }
40 return sum;
41}
42