/* nag_ref_vec_discrete_pdf_cdf (g05exc) Example Program. * * Copyright 1991 Numerical Algorithms Group. * * Mark 2, 1991. * * Mark 3 revised, 1994. */ #include #include #include #include #define NP 10 int main(void) { Integer exit_status = 0, np = NP, zero = 0; static double p[NP] = { 0.0, 0.1, 0.2, 0.4, 0.5, 0.6, 0.8, 0.9, 1.0, 1.0 }; Integer i, x; double *r; NagError fail; INIT_FAIL(fail); printf("nag_ref_vec_discrete_pdf_cdf (g05exc) Example Program Results\n"); /* nag_random_init_repeatable (g05cbc). * Initialize random number generating functions to give * repeatable sequence */ nag_random_init_repeatable(zero); /* nag_ref_vec_discrete_pdf_cdf (g05exc). * Set up reference vector from supplied cumulative * distribution function or probability distribution * function */ nag_ref_vec_discrete_pdf_cdf(p, np, zero, Nag_CDF, &r, &fail); if (fail.code != NE_NOERROR) { printf("Error from nag_ref_vec_discrete_pdf_cdf (g05exc) %s\n", fail.message); exit_status = 1; goto END; } for (i = 1; i <= 5; i++) { /* nag_return_discrete (g05eyc). * Pseudo-random integer from reference vector */ x = nag_return_discrete(r); printf("%5ld\n", x); } END: if (r) NAG_FREE(r); return exit_status; }