GRASS Programmer's Manual  6.4.2(2012)
omnibus.c
Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <math.h>
00003 
00004 
00005 double *omnibus_moments(double *x, int n)
00006 {
00007     double diff, mean = 0., fssm, tssm, sum_cube = 0., sum_four = 0.,
00008         sum_sq = 0.;
00009     static double y[2];
00010     int i;
00011 
00012     for (i = 0; i < n; ++i)
00013         mean += x[i];
00014 
00015     mean /= n;
00016 
00017     for (i = 0; i < n; ++i) {
00018         diff = x[i] - mean;
00019         sum_sq += diff * diff;
00020         sum_cube += diff * diff * diff;
00021         sum_four += diff * diff * diff * diff;
00022     }
00023 
00024     /*
00025        fprintf (stdout,"n %d x-bar %g sum^2 %g sum^3 %g sum^4 %g \n",n,mean,sum_sq,sum_cube,sum_four);
00026      */
00027     tssm = sqrt((double)n) * sum_cube / pow(sum_sq, 1.5);
00028     fssm = n * sum_four / (sum_sq * sum_sq);
00029 
00030 #ifdef NOISY
00031     fprintf(stdout,
00032             "          TESTS OF COMPOSITE DISTRIBUTIONAL HYPOTHESES\n");
00033     fprintf(stdout, "  TEST1  TSM    =%10.4f   FSM    =%10.4f\n", tssm, fssm);
00034 #endif /* NOISY */
00035 
00036     y[0] = tssm;
00037     y[1] = fssm;
00038 
00039     return y;
00040 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines