/* <nagg04.h>
 *
 * Copyright 1996 Numerical Algorithms Group
 *
 * Include file for NAG C Library g04 Chapter
 *
 * Mark 5, 1997.
 * Mark 6 revised. IER-3043 (July 2000).
 */
#ifndef NAGG04
#define NAGG04

/// 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 */
  extern NAG_DLL_EXPIMP void NAG_CALL g04bbc(Integer n, double y[], Nag_Blocks blocks, Integer iblock, Integer nt,
                                             Integer it[], double *gmean, double bmean[],
                                             double tmean[], double table[], double c[], Integer tdc,
                                             Integer irep[], double r[], double ef[], double tol,
                                             Integer irdf, NagError *fail);
  extern void g04bbf_f(Integer n, const double y[], Integer iblock, Integer nt,
                       const Integer it[], double *gmean, double bmean[], double tmean[],
                       double table[], Integer ldt, double c[], Integer ldc,
                       Integer irep[], double r[], double ef[], double tol,
                       Integer irdf, double wk[], Integer *ifail);
  extern void g04bbf(Integer n, double y[], Integer iblock, Integer nt,
                     Integer it[], double *gmean, double bmean[],
                     double tmean[], double table[], Integer tdt,
                     double c[], Integer tdc, Integer irep[], double r[],
                     double ef[], double tol, Integer irdf,
                     double wk[], Integer *ifail);
  extern void g04bbx_f(Integer n, Integer iblock, Integer kblock, Integer nt,
                       const Integer it[], double c[], Integer ldc, const Integer irep[],
                       double ef[], Integer *ntdf, double tmean[], double acc,
                       double wk[], Integer *iwarn);
  extern void g04bbx(Integer n, Integer iblock, Integer kblock, Integer nt,
                     Integer it[], double c[], Integer tdc, Integer irep[],
                     double ef[], Integer *ntdf, double tmean[],
                     double acc, double wk[], Integer *iwarn);
  extern void g04bby_f(Integer n, Integer iblock, Integer kblock, double r[],
                       double bmean[], double *rss, double *ess);
  extern void g04bby(Integer n, Integer iblock, Integer kblock, double r[],
                     double bmean[], double *rss, double *ess);
  extern void g04bbz_f(Integer n, double y[], const Integer ifac[], Integer levels,
                       const double b[], double *rss);
  extern void g04bbz(Integer n, double y[], Integer ifac[], Integer levels,
                     double b[], double *rss);
  extern NAG_DLL_EXPIMP void NAG_CALL g04bcc(Integer nrep, Integer nrow, Integer ncol, const double y[],
                     Integer nt, const Integer it[], double * gmean,
                     double tmean[], double table[], double c[], Integer tdc,
                     Integer irep[], double rpmean[], double rmean[],
                     double cmean[], double r[], double ef[], double tol,
                     Integer irdf, NagError *fail);
  extern void g04bcf_f(Integer nrep, Integer nrow, Integer ncol, const double y[],
                       Integer nt, const Integer it[], double *gmean, double tmean[],
                       double table[], Integer ldt, double c[], Integer ldc,
                       Integer irep[], double rpmean[], double rmean[], double cmean[],
                       double r[], double ef[], double tol, Integer irdf,
                       double wk[], Integer *ifail);
  extern void g04bcx_f(Integer n, Integer nrep, Integer nrow, Integer ncol,
                       Integer nt, const Integer it[], double c[], Integer ldc,
                       const Integer irep[], double ef[], Integer *ntdf, double tmean[],
                       double acc, double wk[], Integer *iwarn);
  extern void g04bcy_f(Integer iblock, Integer kblock, Integer nt, const Integer it[],
                       double c[], Integer ldc, double const_);
  extern NAG_DLL_EXPIMP void NAG_CALL g04cac(Integer n, double y[], Integer nfac, Integer lfac[],
                                             Integer nblock, Integer inter, Integer irdf, Integer *mterm,
                                             double **table, double **tmean,
                                             Integer *maxt, double **e, Integer **imean,
                                             double **semean, double **bmean, double r[],
                                             NagError *fail);
  extern void g04caf_f(Integer n, const double y[], Integer nfac, const Integer lfac[],
                       Integer nblock, Integer inter, Integer irdf, Integer mterm,
                       double table[], Integer *itotal, double tmean[], Integer maxt,
                       double e[], Integer imean[], double semean[], double bmean[],
                       double r[], Integer iwk[], Integer *ifail);
  extern void g04caf_(Integer n, double y[], Integer nfac, Integer lfac[],
                      Integer nblock, Integer inter, Integer irdf, Integer mterm,
                      double table[], Integer *itotal, double tmean[],
                      Integer maxt, double e[], Integer imean[],
                      double semean[], double bmean[], double r[],
                      Integer iwk[], Integer *ifail);
  extern void g04cat_f(Integer itab[], Integer idim);
  extern void g04cat(Integer itab[], Integer idim);
  extern void g04cau_f(Boolean qind, Boolean qfor, const Integer iprod[], Integer kdim,
                       Integer *jsub, Integer ivec[], Integer *ifault);
  extern void g04cau(Boolean qind, Boolean qfor, Integer iprod[], Integer kdim,
                     Integer *jsub, Integer ivec[], Integer *ifault);
  extern void g04cav_f(Integer n, Integer m, Integer ind[], Integer *ierror);
  extern void g04cav(Integer n, Integer m, Integer ind[], Integer *ierror);
  extern void g04caw_f(Integer n, Integer nlevel, double b[], double t[],
                       double *sem, double *ess, double r[], const Integer ifac[]);
  extern void g04caw(Integer n, Integer nlevel, double b[], double t[],
                     double *sem, double *ess, double r[],
                     Integer ifac[]);
  extern void g04cax_f(Integer n, Integer nblock, Integer kblock, double r[],
                       const double y[], double t[], double *ess);
  extern void g04cax(Integer n, Integer nblock, Integer kblock, double r[],
                     double y[], double t[], double *ess);
  extern void g04cay_f(Integer nfac, const Integer lfac[], Integer nrepl, Integer n,
                       const double y[], double r[], double e[], double tmean[],
                       Integer *ie, double semean[], Integer imean[], Integer *ir,
                       Integer ifac[], double table[], Integer ldt, Integer *iterm,
                       double rss, Integer *nrdf);
  extern void g04cay(Integer nfac, Integer lfac[], Integer nrepl, Integer n,
                     double y[], double r[], double e[],
                     double tmean[], Integer *ie, double semean[],
                     Integer imean[], Integer *ir, Integer ifac[],
                     double table[], Integer tdt, Integer *iterm,
                     double rss, Integer *nrdf);
  extern void g04caz_f(Integer inter, Integer nfac, const Integer lfac[], Integer mpf,
                       Integer nblock, Integer mrep, Integer itc, Integer nrepl,
                       Integer n, const double y[], double r[], double e[],
                       double tmean[], Integer *ie, double semean[], Integer imean[],
                       Integer *ir, Integer ifac[], double table[], Integer ldt,
                       Integer *iterm, double rss, Integer *nrdf, Integer iwk[]);
  extern void g04caz(Integer inter, Integer nfac, Integer lfac[], Integer mpf,
                     Integer nblock, Integer mrep, Integer itc, Integer nrepl,
                     Integer n, double y[], double r[], double e[],
                     double tmean[], Integer *ie, double semean[],
                     Integer imean[], Integer *ir, Integer ifac[],
                     double table[], Integer tdt, Integer *iterm,
                     double rss, Integer *nrdf, Integer iwk[]);
  extern NAG_DLL_EXPIMP void NAG_CALL g04czc(double **table, double **tmean, double **e,
                                             Integer **imean, double **semean, double **bmean);
  extern void g04daf_f(Integer nt, const double tmean[], const Integer irep[], double rms,
                       double rdf, Integer nc, const double ct[], Integer ldct,
                       double est[], double table[], Integer ldt, double tol,
                       Boolean usetx, const double tx[], Integer *ifail);
  extern NAG_DLL_EXPIMP void NAG_CALL g04dbc(Nag_IntervalType type, Integer nt, const double tmean[], double rdf,
                     const double c[], Integer ldc, double clevel, double cil[],
                     double ciu[], Integer isig[], NagError *fail);
  extern void g04dbf_f(char *type, Integer nt, const double tmean[], double rdf,
                       const double c[], Integer ldc, double clevel, double cil[],
                       double ciu[], Integer isig[], Integer *ifail, Integer type_len);
  extern NAG_DLL_EXPIMP void NAG_CALL g04eac(Nag_DummyType type, Integer n, Integer levels, const Integer ifact[],
                     double x[], Integer tdx, const double v[], double rep[],
                     NagError *fail);
  extern void g04eaf_f(char *type, Integer n, Integer levels, const Integer ifact[],
                       double x[], Integer ldx, const double v[], double rep[],
                       Integer *ifail, Integer type_len);
  extern void g04eax_f(Integer n, const Integer ifact[], Integer levels, Boolean mean,
                       Boolean first, double x[], Integer ldx);
  extern void g04eay_f(Integer n, const Integer ifact[], Integer levels, double rep[],
                       double x[], Integer ldx);
  extern void g04eaz_f(Integer n, const double x[], Integer k, double p[],
                       const double p1[], const double p2[], const double pl[], Integer *ierr);
  /* end proto */
#ifdef __cplusplus
}
#endif
#endif /* not NAGG04 */
