/* nag_complex_bessel_k (s18dcc) Example Program * * Copyright 2002 Numerical Algorithms Group. * * Mark 7, 2002. */ #include #include #include #include int main(void) { Complex z, cy[2]; double fnu; const Integer n = 2; Integer nz; Nag_ScaleResType scal_enum; char scal; Integer exit_status = EXIT_SUCCESS; NagError fail; INIT_FAIL(fail); /* Skip heading in data file */ Vscanf("%*[^\n]"); Vprintf("s18dcc Example Program Results\n"); Vprintf("Calling with n = %ld\n", n); Vprintf(" fnu z scal cy[0] cy[1] nz\n"); while (scanf(" %lf (%lf,%lf) '%c'%*[^\n] ", &fnu, &z.re, &z.im, &scal) != EOF) { /* Convert scal character to enum */ if (scal == 's') { scal_enum = Nag_ScaleRes; } else if (scal == 'u') { scal_enum = Nag_UnscaleRes; } else { Vprintf("Unrecognised character for Nag_ScaleResType type\n"); exit_status = -1; goto END; } s18dcc(fnu, z, n, scal_enum, cy, &nz, &fail); if (fail.code == NE_NOERROR) Vprintf("%7.4f (%7.3f,%7.3f) '%c' (%7.3f,%7.3f) (%7.3f,%7.3f) %ld\n", fnu, z.re, z.im, scal, cy[0].re, cy[0].im, cy[1].re, cy[1].im, nz); else { Vprintf("Error from s18dcc.\n%s\n", fail.message); exit_status = 1; goto END; } } END: return exit_status; }