/* nag_gaps_test (g08edc) Example Program. * * Copyright 2000 Numerical Algorithms Group. * * Mark 6, 2000. * * Mark 8 revised, 2004 * */ #include #include #include #include #include int main (void) { Integer exit_status=0, igen = 0, iseed[] = {0, 0, 0, 0}, max_gap, n, num_gaps; NagError fail; double chi, df, enda, endb, length, lower, p, upper, *x=0; INIT_FAIL(fail); Vprintf("nag_gaps_test (g08edc) Example Program Results\n"); /* nag_rngs_init_repeatable (g05kbc). * Initialize seeds of a given generator for random number * generating functions (that pass seeds explicitly) to give * a repeatable sequence */ nag_rngs_init_repeatable(&igen, iseed); n = 5000; if (!(x = NAG_ALLOC(n, double))) { Vprintf("Allocation failure\n"); exit_status = -1; goto END; } enda = 0.0; endb = 1.0; /* nag_rngs_uniform (g05lgc). * Generates a vector of random numbers from a uniform * distribution, seeds and generator number passed * explicitly */ nag_rngs_uniform(enda, endb, n, x, igen, iseed, NAGERR_DEFAULT); num_gaps = 0; max_gap = 10; length = 1.0; lower = 0.4; upper = 0.6; /* nag_gaps_test (g08edc). * Performs the gaps test for randomness */ nag_gaps_test(n, x, num_gaps, max_gap, lower, upper, length, &chi, &df, &p, &fail); if (fail.code != NE_NOERROR && fail.code != NE_G08ED_GAPS && NE_G08ED_FREQ_LT_ONE) { Vprintf("Error from nag_gaps_test (g08edc).\n%s\n", fail.message); exit_status = 1; goto END; } Vprintf("\n"); Vprintf("%s%10.4f\n", "Chisq = ", chi); Vprintf("%s%7.1f\n", "DF = ", df); Vprintf("%s%10.4f\n", "Prob = ", p); if (fail.code == NE_G08ED_FREQ_LT_ONE) Vprintf("Error from nag_gaps_test (g08edc).\n%s\n", fail.message); END: if (x) NAG_FREE(x); return exit_status; }