Listing 1: The ANSI function pointers and function prototypes for the NAG C routines.

/* declaration of function pointer E04DGC_FUN */
typedef void (*E04DGC_FUN)(long, double *, double *, double *, Nag_Comm *);
/* declaration of function pointer D01AJC_FUN */
typedef double (*D01AJC_FUN)(double);
/* declaration of function prototypes */
void e04dgc(long n, E04DGC_FUN objfun, double x[], double *objf, double grad[],
                  Nag_E04_Opt *options, Nag_Comm *user_comm, NagError *fail);
void f02aac(long n, double *a, long tda, double *r, NagError *fail);
void d01ajc(D01AJC_FUN f, double a, double b, double epsabs, 
     double epsrel, long max_num_subint, double *result, 
     double *abserr, Nag_QuadProgress *qp, NagError *fail);
double s15abc(double x, NagError *fail);