00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <it/random.h>
00024 #include <it/vec.h>
00025
00026 #define N 1000000
00027
00028 int main ()
00029 {
00030 vec v_z;
00031 double mu, s = 0, k = 0;
00032 int i;
00033
00034 v_z = vec_new (N);
00035
00036 for (i = 0; i < N; i++)
00037 v_z[i] = it_randn ();
00038
00039
00040 mu = vec_mean (v_z);
00041
00042 for (i = 0; i < N; i++) {
00043 s += pow (v_z[i] - mu, 3.);
00044 k += pow (v_z[i] - mu, 4.);
00045 }
00046
00047 s /= (double) vec_length (v_z) - 1;
00048 k /= (double) vec_length (v_z) - 1;
00049
00050 printf ("mu=%f\t sigma^2=%f\t skew=%f\t kurt=%f\n",
00051 vec_mean (v_z), vec_variance (v_z), s, k);
00052
00053 printf ("JB=%e\n", (double) vec_length (v_z) / 6. * (s * s +
00054 ((k - 3) * (k - 3))) / 4.);
00055
00056 vec_delete (v_z);
00057 return 0;
00058 }