/* nag_summary_stats_1var (g01aac) Example Program. * * Copyright 1990 Numerical Algorithms Group. * * Mark 1, 1990. * * Mark 5 revised, 1998. * Mark 8 revised, 2004. * */ #include #include #include #include int main(void) { Integer exit_status = 0, i, j, n, nprob, nvalid, weight; NagError fail; double wsum, *wt = 0, *x = 0, xkurt, xmax, xmean, xmin, xsd, xskew; INIT_FAIL(fail); /* Skip heading in data file */ scanf("%*[^\n]"); printf("nag_summary_stats_1var (g01aac) Example Program Results\n"); scanf("%ld", &nprob); for (j = 1; j <= nprob; j++) { scanf("%ld %ld", &n, &weight); printf("Problem %5ld\n", j); printf("Number of cases %ld\n", n); if (n >= 1) { if (!(wt = NAG_ALLOC(n, double)) || !(x = NAG_ALLOC(n, double))) { printf("Allocation failure\n"); exit_status = -1; goto END; } } else { printf("Invalid n.\n"); exit_status = 1; return exit_status; } for (i = 0; i < n; i++) scanf("%lf", &x[i]); printf("Data as input -\n"); for (i = 0; i < n; i++) printf("%12.1f%c", x[i], (i%5 == 4 || i == n-1)?'\n':' '); if (weight) { printf("Weights as input -\n"); for (i = 0; i < n; i++) scanf("%lf", &wt[i]); for (i = 0; i < n; i++) printf("%12.1f%c", wt[i], (i%5 == 4 || i == n-1)?'\n':' '); /* nag_summary_stats_1var (g01aac). * Mean, variance, skewness, kurtosis, etc., one variable, * from raw data */ nag_summary_stats_1var(n, x, wt, &nvalid, &xmean, &xsd, &xskew, &xkurt, &xmin, &xmax, &wsum, &fail); } else /* nag_summary_stats_1var (g01aac), see above. */ nag_summary_stats_1var(n, x, (double *) 0, &nvalid, &xmean, &xsd, &xskew, &xkurt, &xmin, &xmax, &wsum, &fail); if (fail.code == NE_NOERROR) { printf("\n"); printf("Successful call of " "nag_summary_stats_1var (g01aac)\n"); printf("No. of valid cases %5ld\n", nvalid); printf("Mean %13.1f\n", xmean); printf("Std devn %13.1f\n", xsd); printf("Skewness %13.1f\n", xskew); printf("Kurtosis %13.1f\n", xkurt); printf("Minimum %13.1f\n", xmin); printf("Maximum %13.1f\n", xmax); printf("Sum of weights %13.1f\n", wsum); } else { printf("Unsuccessful call of " "nag_summary_stats_1var (g01aac)\n"); printf("%s \n", fail.message); if (fail.code == NE_CASES_ONE) { printf("No. of valid cases %5ld\n", nvalid); printf("Mean %13.1f\n", xmean); printf("Minimum %13.1f\n", xmin); printf("Maximum %13.1f\n", xmax); printf("Sum of weights %13.1f\n", wsum); printf("Std devn and coeffts of skewness\n"); printf("and kurtosis not defined\n"); exit_status = 2; } else { exit_status = 1; goto END; } } if (wt) { NAG_FREE(wt); wt = 0; } if (x) { NAG_FREE(x); x = 0; } } END: if (wt) NAG_FREE(wt); if (x) NAG_FREE(x); return exit_status; }