gr-satnogs/lib/libfec/sqtest.c

47 lines
922 B
C

/* 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;
}