/* <nagc02.h>
 *
 * Copyright 1996 Numerical Algorithms Group
 *
 * Include file for NAG C Library c02 Chapter
 *
 * Mark 4, revised, 1996.
 * Mark 5 revised. IER-2141 (Feb 1998).
 * Mark 6 revised. IER-3023 (July 2000).
 * Mark 7 revised. IER-3900 (September 2001).
 *
 */
#ifndef NAGC02
#define NAGC02

/// ML 9/22/2004 COMPILING_ONAG8HEADERS_IN_OC
#ifndef _MSC_VER	   //VC
	// This must be put into every header since it does not appear to be
	// inheritable from parent header to child (#include-ded) header:
	#pragma dll(ONAG8)
#endif // !_MSC_VER	   //VC
/// end COMPILING_ONAG8HEADERS_IN_OC

#ifdef __cplusplus
extern "C"
{
#endif
  /* begin proto */
  //Cheney change Complex to complex 2006-6-6
  /*extern NAG_DLL_EXPIMP void NAG_CALL c02afc(Integer n, Complex a[], Boolean scale, Complex z[], NagError *fail);*/
  extern NAG_DLL_EXPIMP void NAG_CALL c02afc(Integer n, complex a[], Boolean scale, complex z[], NagError *fail);
  extern void c02afw(double *ari, double *aii, double *
		     bri, double *bii, double *cr, double *ci, Boolean *fail);
  extern void c02afx(double ar, double ai, double br, 
		     double bi, double cr, double ci, double *zsm, 
		     double *zlg, Ac02af *ac02af_1, Bc02af *bc02af_1, Cc02ag *cc02ag_1);
 //Cheney change Complex to complex 2006-6-6
 /* extern void c02afy(Complex dfy, Integer ndeg, 
	    double *a, double *p, double *pprime, double *pdprim, 
	    double *error, double *deflat, Ac02af *ac02af_1, Bc02af *bc02af_1);
  extern void c02afz(Complex *a, Integer ndeg, Boolean *scale, Complex *z,
		     double *du, double *deflat, int *localerror);
  extern NAG_DLL_EXPIMP void NAG_CALL c02agc(Integer n, double a[], Boolean scale, Complex z[], NagError *fail);*/
   extern void c02afy(complex &dfy, Integer &ndeg, 
	    double *a, double *p, double *pprime, double *pdprim, 
	    double *error, double *deflat, Ac02af *ac02af_1, Bc02af *bc02af_1);
  extern void c02afz(complex *a, Integer ndeg, Boolean *scale, complex *z,
		     double *du, double *deflat, int *localerror);
  extern NAG_DLL_EXPIMP void NAG_CALL c02agc(Integer n, double a[], Boolean scale, complex z[], NagError *fail);
  extern double c02agr(double x, Integer exp_agr, Cc02ag *c02agx_1);
  extern Boolean c02ags(double x);
  //Cheney change Complex to complex 2006-6-6
 /* extern void c02agt(double a0, double b0, double c0, Complex *zsm, Complex *zlg,
		     Ac02ag *c02agz_1, Bc02ag *c02agz_2, Cc02ag *c02agx_1);
  extern void c02agu(Complex a0, Complex b0, Complex c0, Complex *zsm, Complex *zlg,
		     Ac02ag *c02agz_1, Bc02ag *c02agz_2, Cc02ag *c02agx_1);*/
  extern void c02agt(double a0, double b0, double c0, complex *zsm, complex *zlg,
		     Ac02ag *c02agz_1, Bc02ag *c02agz_2, Cc02ag *c02agx_1);
  extern void c02agu(complex &a0, complex &b0, complex &c0, complex *zsm, complex *zlg,
		     Ac02ag *c02agz_1, Bc02ag *c02agz_2, Cc02ag *c02agx_1);		     
  extern void c02agv(double dx, Integer ndeg, double *a, double *p, double *pprime,
		     double *pdprim, double *error, double *deflat, Ac02ag *c02agz_1,
		     Bc02ag *c02agz_2);
  //Cheney change Complex to complex 2006-6-6
  /*extern void c02agw(Complex xgw, Integer ndeg, double *a, Complex *p, Complex *pprime,
		     Complex *pdprim, double *error, double *deflat, Ac02ag *c02agz_1,
		     Bc02ag *c02agz_2);*/
  extern void c02agw(complex &xgw, Integer ndeg, double *a, complex *p, complex *pprime,
		     complex *pdprim, double *error, double *deflat, Ac02ag *c02agz_1,
		     Bc02ag *c02agz_2);
  extern Integer c02agx(double dx, Cc02ag *c02agx_1);
  extern double c02agy(double dx, Integer exp_agy, Cc02ag *c02agx_1);
   //Cheney change Complex to complex 2006-6-6
  /*extern void c02agz(double *a, Integer ndeg, Boolean *scale, Complex *z,
		     int *localerror);*/
  extern void c02agz(double *a, Integer ndeg, Boolean *scale, complex *z,
		     int *localerror);
  
  extern NAG_DLL_EXPIMP
  void NAG_CALL c02akc (double u, double r, double s, double t,
			double zeror[], double zeroi[], double errest[],
			NagError *fail);
  
  extern void c02akf_f(double u, double r, double s, double t,
		       double zeror[], double zeroi[], double errest[], Integer *ifail);
  
  extern NAG_DLL_EXPIMP
  void  NAG_CALL c02alc (double e, double a, double b, double c,
			 double d, double zeror[], double zeroi[],
			 double errest[], NagError *fail);
  
  extern void c02alf_f(double e, double a, double b, double c,
		       double d, double zeror[], double zeroi[],
		       double errest[], Integer *ifail);
  /* end proto */
#ifdef __cplusplus
}
#endif
#endif /* not NAGC02 */
