2
* Experimental data distribution table generator
3
* Taken from the uncopyrighted NISTnet code (public domain).
5
* Rread in a series of "random" data values, either
6
* experimentally or generated from some probability distribution.
7
* From this, report statistics.
14
#include <sys/types.h>
24
double mu=0.0, sigma=0.0, sumsquare=0.0, sum=0.0, top=0.0, rho=0.0;
27
fstat(fileno(fp), &info);
28
if (info.st_size > 0) {
29
limit = 2*info.st_size/sizeof(double); /* @@ approximate */
33
x = (double *)malloc(limit*sizeof(double));
35
for (i=0; i<limit; ++i){
36
fscanf(fp, "%lf", &x[i]);
39
sumsquare += x[i]*x[i];
44
sigma = sqrt((sumsquare - (double)n*mu*mu)/(double)(n-1));
46
for (i=1; i < n; ++i){
47
top += ((double)x[i]-mu)*((double)x[i-1]-mu);
48
sigma2 += ((double)x[i-1] - mu)*((double)x[i-1] - mu);
53
printf("mu = %12.6f\n", mu);
54
printf("sigma = %12.6f\n", sigma);
55
printf("rho = %12.6f\n", rho);
56
/*printf("sigma2 = %10.4f\n", sqrt(sigma2/(double)(n-1)));*/
57
/*printf("correlation rho = %10.6f\n", top/((double)(n-1)*sigma*sigma));*/
62
main(int argc, char **argv)
67
fp = fopen(argv[1], "r");