/* nag_specfun_1f1_real (s22bac) Example Program. * * Copyright 2013 Numerical Algorithms Group. * * Mark 24, 2013. */ #include #include #include #include #include void construct_table(double a, double b); int main(void) { /* Scalars */ Integer exit_status = 0; Integer kx; double a, b, m, x; /* Nag Types */ NagError fail; INIT_FAIL(fail); printf("nag_specfun_1f1_real (s22bac) Example Program Results\n\n"); a = 13.6; b = 14.2; construct_table(a, b); for (kx = -5; kx < 6; kx++) { x = (double) kx + 0.5; /* Evaluate Real confluent hypergeometric function M(a,b,x) using * nag_specfun_1f1_real (s22bac). */ nag_specfun_1f1_real(a, b, x, &m, &fail); printf("%13.2f ", x); switch (fail.code) { case NE_NOERROR: case NW_UNDERFLOW_WARN: case NW_SOME_PRECISION_LOSS: { printf("%13.5e\n", m); break; } default: { printf("No finite or sufficiently accurate result.\n"); exit_status = 1; break; } } } return exit_status; } void construct_table(double a, double b) { printf(" a b\n"); printf("+--------------+--------------+\n"); printf("%13.2f %13.2f\n", a, b); printf("+--------------+--------------+\n"); printf(" x M(a,b,x)\n"); printf("+--------------+--------------+\n\n"); return; }