/* Verify correctness of the sum-of-square routines */ #include <stdio.h> #include <stdlib.h> #include <time.h> /* These values should trigger leading/trailing array fragment handling */ #define NSAMP 200002 #define OFFSET 1 long long sumsq_wq(signed short *in,int cnt); long long sumsq_wq_ref(signed short *in,int cnt); int main(){ int i; long long result,rresult; signed short samples[NSAMP]; srandom(time(NULL)); for(i=0;i<NSAMP;i++) samples[i] = random() & 0xffff; rresult = sumsq_wq(&samples[OFFSET],NSAMP-OFFSET); result = sumsq_wq(&samples[OFFSET],NSAMP-OFFSET); if(result == rresult){ printf("OK\n"); } else { printf("sum mismatch: %lld != %lld\n",result,rresult); } exit(0); } long long sumsq_wq_ref(signed short *in,int cnt){ long long sum = 0; int i; for(i=0;i<cnt;i++){ sum += (long)in[i] * in[i]; } return sum; }