Initial code
diff --git a/sqtest.c b/sqtest.c
new file mode 100644
index 0000000..b2abb09
--- /dev/null
+++ b/sqtest.c
@@ -0,0 +1,42 @@
+/* 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;
+}
+