geary.c 548 B

123456789101112131415161718192021222324252627282930313233
  1. #include <stdio.h>
  2. #include <math.h>
  3. double *Cdhc_geary_test(double *x, int n)
  4. {
  5. int i;
  6. static double y[2];
  7. double diff, s = 0.0, mean = 0.0;
  8. y[0] = 0.0;
  9. for (i = 0; i < n; ++i)
  10. mean += x[i];
  11. mean /= n;
  12. for (i = 0; i < n; ++i) {
  13. diff = x[i] - mean;
  14. y[0] += fabs(diff);
  15. s += diff * diff;
  16. }
  17. s *= n;
  18. y[0] /= sqrt(s);
  19. y[1] = (y[0] - 0.7979) * sqrt((double)n) / 0.2123;
  20. #ifdef NOISY
  21. fprintf(stdout, " TEST2 GTN =%10.4f Z(GTN) =%10.4f\n", y[0], y[1]);
  22. #endif /* NOISY */
  23. return y;
  24. }