

/* Copyright 2012, Numerical Algorithms Group Ltd, Oxford, UK.
   Mark 23
*/

/* Define LONG_CHARLEN
   if string length parameters use type long
#define LONG_CHARLEN
*/

/* Define INT64_CHARLEN
   if string length parameters use type __int64
#define INT64_CHARLEN
*/

/* Define LONG_INTEGER
   if integer parameters use type long
#define LONG_INTEGER
*/

/* Define INT64_INTEGER
   if integer parameters use type __int64
#define INT64_INTEGER
*/

/* Define USE_STDCALL
   if the stdcall calling convention is being used
#define USE_STDCALL
*/

/* Define RETURN_COMPLEX_PARAM
   if complex valued functions implemented as void functions
   with an extra output parameter
#define RETURN_COMPLEX_PARAM
*/


#ifndef NAG_FTN_INCLUDED
#define NAG_FTN_INCLUDED

#ifndef RETURN_COMPLEX
#define RETURN_COMPLEX
#endif

#ifdef RETURN_COMPLEX_PARAM
#undef RETURN_COMPLEX
#endif

#ifdef RETURN_COMPLEX
#define COMPLEXVOID Complex
#define COMPLEXRETURN
#define COMPLEXRETVAL
#else
#define COMPLEXVOID void
#define COMPLEXRETURN Complex REFPTR,
#define COMPLEXRETVAL Complex REFPTR retval,
#endif

#ifndef NAG_TYPES
  typedef struct { double re,im; } Complex;

  typedef struct { float re,im; } Complexf;


#if defined LONG_INTEGER
  typedef long Integer;
  typedef long logical;
  #define NAG_IFMT "ld"
  #define NAG_UFMT "lu"
#else
#if defined INT64_INTEGER
  typedef __int64 Integer;
  typedef __int64 logical;
  #define NAG_IFMT "I64d"
  #define NAG_UFMT "I64u"
#else
  typedef int Integer;
  typedef int logical;
  #define NAG_IFMT "d"
  #define NAG_UFMT "u"
#endif
#endif
#else
  typedef NAG_F77_int logical;
#endif

#define CONST const

#ifdef __cplusplus
#define REFPTR &
#define VOIDARGLIST
#else
#define REFPTR * 
#define VOIDARGLIST void
#endif

#if defined USE_STDCALL
#define NAG_CALL __stdcall
#define STDCALLLEN ,CONST Charlen
#define NSTDCALLLEN
#else
#define NAG_CALL 
#define STDCALLLEN
#define NSTDCALLLEN ,CONST Charlen
#endif

#if defined LONG_CHARLEN
typedef long Charlen;
#else
#if defined INT64_CHARLEN
typedef __int64 Charlen;
#else
typedef int Charlen;
#endif
#endif


#ifdef __cplusplus
extern "C" {
#endif

#if defined (_WIN32) || defined (_WIN64)
#define a00aaf_ A00AAF
#else
#define A00AAF a00aaf_
#endif
extern void NAG_CALL A00AAF(
VOIDARGLIST
);
#if defined (_WIN32) || defined (_WIN64)
#define a00acf_ A00ACF
#else
#define A00ACF a00acf_
#endif
extern logical NAG_CALL A00ACF(
VOIDARGLIST
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
a00adf_(impl, prec, pcode, mkmaj, mkmin, hdware, opsys, fcomp, vend, licval, length_impl, length_prec, length_pcode, length_hdware, length_opsys, length_fcomp, length_vend)  \
A00ADF(impl, length_impl, prec, length_prec, pcode, length_pcode, mkmaj, mkmin, hdware, length_hdware, opsys, length_opsys, fcomp, length_fcomp, vend, length_vend, licval) 
#elif defined (_WIN32) || defined (_WIN64)
#define a00adf_ A00ADF
#else
#define A00ADF a00adf_
#endif
extern void NAG_CALL A00ADF(
  char * impl
#ifdef USE_STDCALL
,  CONST Charlen length_impl
#endif
,
  char * prec
#ifdef USE_STDCALL
,  CONST Charlen length_prec
#endif
,
  char * pcode
#ifdef USE_STDCALL
,  CONST Charlen length_pcode
#endif
,
  Integer REFPTR mkmaj,
  Integer REFPTR mkmin,
  char * hdware
#ifdef USE_STDCALL
,  CONST Charlen length_hdware
#endif
,
  char * opsys
#ifdef USE_STDCALL
,  CONST Charlen length_opsys
#endif
,
  char * fcomp
#ifdef USE_STDCALL
,  CONST Charlen length_fcomp
#endif
,
  char * vend
#ifdef USE_STDCALL
,  CONST Charlen length_vend
#endif
,
  logical REFPTR licval
#ifndef USE_STDCALL
, CONST Charlen length_impl,
 CONST Charlen length_prec,
 CONST Charlen length_pcode,
 CONST Charlen length_hdware,
 CONST Charlen length_opsys,
 CONST Charlen length_fcomp,
 CONST Charlen length_vend
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define a02aaf_ A02AAF
#else
#define A02AAF a02aaf_
#endif
extern void NAG_CALL A02AAF(
  CONST double REFPTR xr,
  CONST double REFPTR xi,
  double REFPTR yr,
  double REFPTR yi
);
#if defined (_WIN32) || defined (_WIN64)
#define a02abf_ A02ABF
#else
#define A02ABF a02abf_
#endif
extern double NAG_CALL A02ABF(
  CONST double REFPTR xr,
  CONST double REFPTR xi
);
#if defined (_WIN32) || defined (_WIN64)
#define a02acf_ A02ACF
#else
#define A02ACF a02acf_
#endif
extern void NAG_CALL A02ACF(
  CONST double REFPTR xr,
  CONST double REFPTR xi,
  CONST double REFPTR yr,
  CONST double REFPTR yi,
  double REFPTR zr,
  double REFPTR zi
);
#if defined (_WIN32) || defined (_WIN64)
#define c02aff_ C02AFF
#else
#define C02AFF c02aff_
#endif
extern void NAG_CALL C02AFF(
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST logical REFPTR scal,
  double z[] /* 2 dimension */,
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02agf_ C02AGF
#else
#define C02AGF c02agf_
#endif
extern void NAG_CALL C02AGF(
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST logical REFPTR scal,
  double z[] /* 2 dimension */,
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02ahf_ C02AHF
#else
#define C02AHF c02ahf_
#endif
extern void NAG_CALL C02AHF(
  CONST double REFPTR ar,
  CONST double REFPTR ai,
  CONST double REFPTR br,
  CONST double REFPTR bi,
  CONST double REFPTR cr,
  CONST double REFPTR ci,
  double zsm[] /* 1 dimension */,
  double zlg[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02ajf_ C02AJF
#else
#define C02AJF c02ajf_
#endif
extern void NAG_CALL C02AJF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR c,
  double zsm[] /* 1 dimension */,
  double zlg[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02akf_ C02AKF
#else
#define C02AKF c02akf_
#endif
extern void NAG_CALL C02AKF(
  CONST double REFPTR u,
  CONST double REFPTR r,
  CONST double REFPTR s,
  CONST double REFPTR t,
  double zeror[] /* 1 dimension */,
  double zeroi[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02alf_ C02ALF
#else
#define C02ALF c02alf_
#endif
extern void NAG_CALL C02ALF(
  CONST double REFPTR e,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR c,
  CONST double REFPTR d,
  double zeror[] /* 1 dimension */,
  double zeroi[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02amf_ C02AMF
#else
#define C02AMF c02amf_
#endif
extern void NAG_CALL C02AMF(
  CONST Complex REFPTR u,
  CONST Complex REFPTR r,
  CONST Complex REFPTR s,
  CONST Complex REFPTR t,
  double zeror[] /* 1 dimension */,
  double zeroi[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c02anf_ C02ANF
#else
#define C02ANF c02anf_
#endif
extern void NAG_CALL C02ANF(
  CONST Complex REFPTR e,
  CONST Complex REFPTR a,
  CONST Complex REFPTR b,
  CONST Complex REFPTR c,
  CONST Complex REFPTR d,
  double zeror[] /* 1 dimension */,
  double zeroi[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05adf_ C05ADF
#else
#define C05ADF c05adf_
#endif
extern void NAG_CALL C05ADF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  double REFPTR x,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05agf_ C05AGF
#else
#define C05AGF c05agf_
#endif
extern void NAG_CALL C05AGF(
  double REFPTR x,
  CONST double REFPTR h,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  double REFPTR a,
  double REFPTR b,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05ajf_ C05AJF
#else
#define C05AJF c05ajf_
#endif
extern void NAG_CALL C05AJF(
  double REFPTR x,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST Integer REFPTR nfmax,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05auf_ C05AUF
#else
#define C05AUF c05auf_
#endif
extern void NAG_CALL C05AUF(
  double REFPTR x,
  CONST double REFPTR h,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ,
                       Integer[],
                       double[]),
  double REFPTR a,
  double REFPTR b,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05avf_ C05AVF
#else
#define C05AVF c05avf_
#endif
extern void NAG_CALL C05AVF(
  double REFPTR x,
  CONST double REFPTR fx,
  double REFPTR h,
  CONST double REFPTR boundl,
  CONST double REFPTR boundu,
  double REFPTR y,
  double c[] /* 1 dimension */,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05awf_ C05AWF
#else
#define C05AWF c05awf_
#endif
extern void NAG_CALL C05AWF(
  double REFPTR x,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ,
                       Integer[],
                       double[]),
  CONST Integer REFPTR nfmax,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05axf_ C05AXF
#else
#define C05AXF c05axf_
#endif
extern void NAG_CALL C05AXF(
  double REFPTR x,
  CONST double REFPTR fx,
  CONST double REFPTR tol,
  CONST Integer REFPTR ir,
  CONST double REFPTR scal,
  double c[] /* 1 dimension */,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05ayf_ C05AYF
#else
#define C05AYF c05ayf_
#endif
extern void NAG_CALL C05AYF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR eps,
  CONST double REFPTR eta,
  double (NAG_CALL *f)(
                       CONST double REFPTR ,
                       Integer[],
                       double[]),
  double REFPTR x,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05azf_ C05AZF
#else
#define C05AZF c05azf_
#endif
extern void NAG_CALL C05AZF(
  double REFPTR x,
  double REFPTR y,
  CONST double REFPTR fx,
  CONST double REFPTR tolx,
  CONST Integer REFPTR ir,
  double c[] /* 1 dimension */,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05baf_ C05BAF
#else
#define C05BAF c05baf_
#endif
extern double NAG_CALL C05BAF(
  CONST double REFPTR x,
  CONST Integer REFPTR branch,
  CONST logical REFPTR offset,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05bbf_ C05BBF
#else
#define C05BBF c05bbf_
#endif
extern void NAG_CALL C05BBF(
  CONST Integer REFPTR branch,
  CONST logical REFPTR offset,
  CONST Complex REFPTR z,
  Complex REFPTR w,
  double REFPTR resid,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05nbf_ C05NBF
#else
#define C05NBF c05nbf_
#endif
extern void NAG_CALL C05NBF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST double wa[] /* 1 dimension */,
  CONST Integer REFPTR lwa,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05ncf_ C05NCF
#else
#define C05NCF c05ncf_
#endif
extern void NAG_CALL C05NCF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR maxfev,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  CONST double REFPTR epsfcn,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  CONST Integer REFPTR nprint,
  Integer REFPTR nfev,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  CONST double w[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05ndf_ C05NDF
#else
#define C05NDF c05ndf_
#endif
extern void NAG_CALL C05NDF(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  CONST double REFPTR epsfcn,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  double w[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pba_ C05PBA
#else
#define C05PBA c05pba_
#endif
extern void NAG_CALL C05PBA(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       CONST Integer REFPTR ,
                       Integer REFPTR ,
                       Integer[],
                       double[]),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  CONST double wa[] /* 1 dimension */,
  CONST Integer REFPTR lwa,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pbf_ C05PBF
#else
#define C05PBF c05pbf_
#endif
extern void NAG_CALL C05PBF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       CONST Integer REFPTR ,
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  CONST double wa[] /* 1 dimension */,
  CONST Integer REFPTR lwa,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pca_ C05PCA
#else
#define C05PCA c05pca_
#endif
extern void NAG_CALL C05PCA(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       CONST Integer REFPTR ,
                       Integer REFPTR ,
                       Integer[],
                       double[]),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  CONST Integer REFPTR maxfev,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  CONST Integer REFPTR nprint,
  Integer REFPTR nfev,
  Integer REFPTR njev,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  CONST double w[] /* 2 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pcf_ C05PCF
#else
#define C05PCF c05pcf_
#endif
extern void NAG_CALL C05PCF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       CONST Integer REFPTR ,
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  CONST Integer REFPTR maxfev,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  CONST Integer REFPTR nprint,
  Integer REFPTR nfev,
  Integer REFPTR njev,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  CONST double w[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pda_ C05PDA
#else
#define C05PDA c05pda_
#endif
extern void NAG_CALL C05PDA(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  double w[] /* 2 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05pdf_ C05PDF
#else
#define C05PDF c05pdf_
#endif
extern void NAG_CALL C05PDF(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double REFPTR xtol,
  double diag[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  CONST double REFPTR factor,
  double r[] /* 1 dimension */,
  Integer REFPTR lr,
  double qtf[] /* 1 dimension */,
  double w[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05qbf_ C05QBF
#else
#define C05QBF c05qbf_
#endif
extern void NAG_CALL C05QBF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       Integer[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05qcf_ C05QCF
#else
#define C05QCF c05qcf_
#endif
extern void NAG_CALL C05QCF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       Integer[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR maxfev,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  CONST double REFPTR epsfcn,
  CONST Integer REFPTR mode,
  double diag[] /* 1 dimension */,
  CONST double REFPTR factor,
  CONST Integer REFPTR nprint,
  Integer REFPTR nfev,
  double fjac[] /* 2 dimension */,
  double r[] /* 1 dimension */,
  double qtf[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05qdf_ C05QDF
#else
#define C05QDF c05qdf_
#endif
extern void NAG_CALL C05QDF(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  CONST double REFPTR epsfcn,
  CONST Integer REFPTR mode,
  double diag[] /* 1 dimension */,
  CONST double REFPTR factor,
  double fjac[] /* 2 dimension */,
  double r[] /* 1 dimension */,
  double qtf[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05qsf_ C05QSF
#else
#define C05QSF c05qsf_
#endif
extern void NAG_CALL C05QSF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST Integer REFPTR ,
                       CONST Integer[],
                       CONST double[],
                       double[],
                       Integer[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  CONST double REFPTR xtol,
  CONST logical REFPTR init,
  double rcomm[] /* 1 dimension */,
  CONST Integer REFPTR lrcomm,
  Integer icomm[] /* 1 dimension */,
  CONST Integer REFPTR licomm,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05rbf_ C05RBF
#else
#define C05RBF c05rbf_
#endif
extern void NAG_CALL C05RBF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       Integer[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST double REFPTR xtol,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05rcf_ C05RCF
#else
#define C05RCF c05rcf_
#endif
extern void NAG_CALL C05RCF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double[],
                       double[],
                       double[],
                       Integer[],
                       double[],
                       Integer REFPTR ),
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR maxfev,
  CONST Integer REFPTR mode,
  double diag[] /* 1 dimension */,
  CONST double REFPTR factor,
  CONST Integer REFPTR nprint,
  Integer REFPTR nfev,
  Integer REFPTR njev,
  double r[] /* 1 dimension */,
  double qtf[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05rdf_ C05RDF
#else
#define C05RDF c05rdf_
#endif
extern void NAG_CALL C05RDF(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST double REFPTR xtol,
  CONST Integer REFPTR mode,
  double diag[] /* 1 dimension */,
  CONST double REFPTR factor,
  double r[] /* 1 dimension */,
  double qtf[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c05zaf_ C05ZAF
#else
#define C05ZAF c05zaf_
#endif
extern void NAG_CALL C05ZAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double fvec[] /* 1 dimension */,
  CONST double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double xp[] /* 1 dimension */,
  CONST double fvecp[] /* 1 dimension */,
  CONST Integer REFPTR mode,
  double err[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define c05zdf_ C05ZDF
#else
#define C05ZDF c05zdf_
#endif
extern void NAG_CALL C05ZDF(
  CONST Integer REFPTR mode,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double fvec[] /* 1 dimension */,
  CONST double fjac[] /* 2 dimension */,
  double xp[] /* 1 dimension */,
  CONST double fvecp[] /* 1 dimension */,
  double err[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06baf_ C06BAF
#else
#define C06BAF c06baf_
#endif
extern void NAG_CALL C06BAF(
  CONST double REFPTR seqn,
  Integer REFPTR ncall,
  double REFPTR result,
  double REFPTR abserr,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06dbf_ C06DBF
#else
#define C06DBF c06dbf_
#endif
extern double NAG_CALL C06DBF(
  CONST double REFPTR x,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define c06dcf_ C06DCF
#else
#define C06DCF c06dcf_
#endif
extern void NAG_CALL C06DCF(
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR lx,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR s,
  double res[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06eaf_ C06EAF
#else
#define C06EAF c06eaf_
#endif
extern void NAG_CALL C06EAF(
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06ebf_ C06EBF
#else
#define C06EBF c06ebf_
#endif
extern void NAG_CALL C06EBF(
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06ecf_ C06ECF
#else
#define C06ECF c06ecf_
#endif
extern void NAG_CALL C06ECF(
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06ekf_ C06EKF
#else
#define C06EKF c06ekf_
#endif
extern void NAG_CALL C06EKF(
  CONST Integer REFPTR job,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06faf_ C06FAF
#else
#define C06FAF c06faf_
#endif
extern void NAG_CALL C06FAF(
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06fbf_ C06FBF
#else
#define C06FBF c06fbf_
#endif
extern void NAG_CALL C06FBF(
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06fcf_ C06FCF
#else
#define C06FCF c06fcf_
#endif
extern void NAG_CALL C06FCF(
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06fff_ C06FFF
#else
#define C06FFF c06fff_
#endif
extern void NAG_CALL C06FFF(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR l,
  CONST Integer nd[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06fjf_ C06FJF
#else
#define C06FJF c06fjf_
#endif
extern void NAG_CALL C06FJF(
  CONST Integer REFPTR ndim,
  CONST Integer nd[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06fkf_ C06FKF
#else
#define C06FKF c06fkf_
#endif
extern void NAG_CALL C06FKF(
  CONST Integer REFPTR job,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06fpf_(m, n, x, init, trig, work, ifail, length_init)  \
C06FPF(m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06fpf_ C06FPF
#else
#define C06FPF c06fpf_
#endif
extern void NAG_CALL C06FPF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06fqf_(m, n, x, init, trig, work, ifail, length_init)  \
C06FQF(m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06fqf_ C06FQF
#else
#define C06FQF c06fqf_
#endif
extern void NAG_CALL C06FQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06frf_(m, n, x, y, init, trig, work, ifail, length_init)  \
C06FRF(m, n, x, y, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06frf_ C06FRF
#else
#define C06FRF c06frf_
#endif
extern void NAG_CALL C06FRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06fuf_(m, n, x, y, init, trigm, trign, work, ifail, length_init)  \
C06FUF(m, n, x, y, init, length_init, trigm, trign, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06fuf_ C06FUF
#else
#define C06FUF c06fuf_
#endif
extern void NAG_CALL C06FUF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trigm[] /* 1 dimension */,
  double trign[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06fxf_(n1, n2, n3, x, y, init, trign1, trign2, trign3, work, ifail, length_init)  \
C06FXF(n1, n2, n3, x, y, init, length_init, trign1, trign2, trign3, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06fxf_ C06FXF
#else
#define C06FXF c06fxf_
#endif
extern void NAG_CALL C06FXF(
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR n3,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trign1[] /* 1 dimension */,
  double trign2[] /* 1 dimension */,
  double trign3[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define c06gbf_ C06GBF
#else
#define C06GBF c06gbf_
#endif
extern void NAG_CALL C06GBF(
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06gcf_ C06GCF
#else
#define C06GCF c06gcf_
#endif
extern void NAG_CALL C06GCF(
  double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06gqf_ C06GQF
#else
#define C06GQF c06gqf_
#endif
extern void NAG_CALL C06GQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06gsf_ C06GSF
#else
#define C06GSF c06gsf_
#endif
extern void NAG_CALL C06GSF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  double u[] /* 1 dimension */,
  double v[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06haf_(m, n, x, init, trig, work, ifail, length_init)  \
C06HAF(m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06haf_ C06HAF
#else
#define C06HAF c06haf_
#endif
extern void NAG_CALL C06HAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06hbf_(m, n, x, init, trig, work, ifail, length_init)  \
C06HBF(m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06hbf_ C06HBF
#else
#define C06HBF c06hbf_
#endif
extern void NAG_CALL C06HBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06hcf_(direct, m, n, x, init, trig, work, ifail, length_direct, length_init)  \
C06HCF(direct, length_direct, m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06hcf_ C06HCF
#else
#define C06HCF c06hcf_
#endif
extern void NAG_CALL C06HCF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct,
 CONST Charlen length_init
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06hdf_(direct, m, n, x, init, trig, work, ifail, length_direct, length_init)  \
C06HDF(direct, length_direct, m, n, x, init, length_init, trig, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06hdf_ C06HDF
#else
#define C06HDF c06hdf_
#endif
extern void NAG_CALL C06HDF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST char * init
#ifdef USE_STDCALL
,  CONST Charlen length_init
#endif
,
  double trig[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct,
 CONST Charlen length_init
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define c06laf_ C06LAF
#else
#define C06LAF c06laf_
#endif
extern void NAG_CALL C06LAF(
  void (NAG_CALL *fun)(
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       double REFPTR ,
                       double REFPTR ),
  CONST Integer REFPTR n,
  CONST double t[] /* 1 dimension */,
  double valinv[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  CONST double REFPTR relerr,
  CONST double REFPTR alphab,
  CONST double REFPTR tfac,
  CONST Integer REFPTR mxterm,
  Integer REFPTR nterms,
  Integer REFPTR na,
  double REFPTR alow,
  double REFPTR ahigh,
  Integer REFPTR nfeval,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06lbf_ C06LBF
#else
#define C06LBF c06lbf_
#endif
extern void NAG_CALL C06LBF(
  COMPLEXVOID (NAG_CALL *f)(
                            COMPLEXRETURN
                            CONST Complex REFPTR ),
  CONST double REFPTR sigma0,
  double REFPTR sigma,
  double REFPTR b,
  CONST double REFPTR epstol,
  CONST Integer REFPTR mmax,
  Integer REFPTR m,
  double acoef[] /* 1 dimension */,
  double errvec[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06lcf_ C06LCF
#else
#define C06LCF c06lcf_
#endif
extern void NAG_CALL C06LCF(
  CONST double REFPTR t,
  CONST double REFPTR sigma,
  CONST double REFPTR b,
  CONST Integer REFPTR m,
  CONST double acoef[] /* 1 dimension */,
  CONST double errvec[] /* 1 dimension */,
  double REFPTR finv,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06paf_(direct, x, n, work, ifail, length_direct)  \
C06PAF(direct, length_direct, x, n, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06paf_ C06PAF
#else
#define C06PAF c06paf_
#endif
extern void NAG_CALL C06PAF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06pcf_(direct, x, n, work, ifail, length_direct)  \
C06PCF(direct, length_direct, x, n, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06pcf_ C06PCF
#else
#define C06PCF c06pcf_
#endif
extern void NAG_CALL C06PCF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06pff_(direct, ndim, l, nd, n, x, work, lwork, ifail, length_direct)  \
C06PFF(direct, length_direct, ndim, l, nd, n, x, work, lwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06pff_ C06PFF
#else
#define C06PFF c06pff_
#endif
extern void NAG_CALL C06PFF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR l,
  CONST Integer nd[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06pjf_(direct, ndim, nd, n, x, work, lwork, ifail, length_direct)  \
C06PJF(direct, length_direct, ndim, nd, n, x, work, lwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06pjf_ C06PJF
#else
#define C06PJF c06pjf_
#endif
extern void NAG_CALL C06PJF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR ndim,
  CONST Integer nd[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define c06pkf_ C06PKF
#else
#define C06PKF c06pkf_
#endif
extern void NAG_CALL C06PKF(
  CONST Integer REFPTR job,
  Complex x[] /* 1 dimension */,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06ppf_(direct, m, n, x, work, ifail, length_direct)  \
C06PPF(direct, length_direct, m, n, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06ppf_ C06PPF
#else
#define C06PPF c06ppf_
#endif
extern void NAG_CALL C06PPF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06pqf_(direct, n, m, x, work, ifail, length_direct)  \
C06PQF(direct, length_direct, n, m, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06pqf_ C06PQF
#else
#define C06PQF c06pqf_
#endif
extern void NAG_CALL C06PQF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06prf_(direct, m, n, x, work, ifail, length_direct)  \
C06PRF(direct, length_direct, m, n, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06prf_ C06PRF
#else
#define C06PRF c06prf_
#endif
extern void NAG_CALL C06PRF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06psf_(direct, n, m, x, work, ifail, length_direct)  \
C06PSF(direct, length_direct, n, m, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06psf_ C06PSF
#else
#define C06PSF c06psf_
#endif
extern void NAG_CALL C06PSF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06puf_(direct, m, n, x, work, ifail, length_direct)  \
C06PUF(direct, length_direct, m, n, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06puf_ C06PUF
#else
#define C06PUF c06puf_
#endif
extern void NAG_CALL C06PUF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06pxf_(direct, n1, n2, n3, x, work, ifail, length_direct)  \
C06PXF(direct, length_direct, n1, n2, n3, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06pxf_ C06PXF
#else
#define C06PXF c06pxf_
#endif
extern void NAG_CALL C06PXF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR n3,
  Complex x[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define c06raf_ C06RAF
#else
#define C06RAF c06raf_
#endif
extern void NAG_CALL C06RAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c06rbf_ C06RBF
#else
#define C06RBF c06rbf_
#endif
extern void NAG_CALL C06RBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06rcf_(direct, m, n, x, work, ifail, length_direct)  \
C06RCF(direct, length_direct, m, n, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06rcf_ C06RCF
#else
#define C06RCF c06rcf_
#endif
extern void NAG_CALL C06RCF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c06rdf_(direct, m, n, x, work, ifail, length_direct)  \
C06RDF(direct, length_direct, m, n, x, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c06rdf_ C06RDF
#else
#define C06RDF c06rdf_
#endif
extern void NAG_CALL C06RDF(
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c09aaf_(wavnam, wtrans, mode, n, nwl, nf, nwc, icomm, ifail, length_wavnam, length_wtrans, length_mode)  \
C09AAF(wavnam, length_wavnam, wtrans, length_wtrans, mode, length_mode, n, nwl, nf, nwc, icomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c09aaf_ C09AAF
#else
#define C09AAF c09aaf_
#endif
extern void NAG_CALL C09AAF(
  CONST char * wavnam
#ifdef USE_STDCALL
,  CONST Charlen length_wavnam
#endif
,
  CONST char * wtrans
#ifdef USE_STDCALL
,  CONST Charlen length_wtrans
#endif
,
  CONST char * mode
#ifdef USE_STDCALL
,  CONST Charlen length_mode
#endif
,
  CONST Integer REFPTR n,
  Integer REFPTR nwl,
  Integer REFPTR nf,
  Integer REFPTR nwc,
  Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_wavnam,
 CONST Charlen length_wtrans,
 CONST Charlen length_mode
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c09abf_(wavnam, wtrans, mode, m, n, nwl, nf, nwct, nwcn, icomm, ifail, length_wavnam, length_wtrans, length_mode)  \
C09ABF(wavnam, length_wavnam, wtrans, length_wtrans, mode, length_mode, m, n, nwl, nf, nwct, nwcn, icomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c09abf_ C09ABF
#else
#define C09ABF c09abf_
#endif
extern void NAG_CALL C09ABF(
  CONST char * wavnam
#ifdef USE_STDCALL
,  CONST Charlen length_wavnam
#endif
,
  CONST char * wtrans
#ifdef USE_STDCALL
,  CONST Charlen length_wtrans
#endif
,
  CONST char * mode
#ifdef USE_STDCALL
,  CONST Charlen length_mode
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Integer REFPTR nwl,
  Integer REFPTR nf,
  Integer REFPTR nwct,
  Integer REFPTR nwcn,
  Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_wavnam,
 CONST Charlen length_wtrans,
 CONST Charlen length_mode
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
c09baf_(wavnam, wparam, n, x, nscal, scales, c, ifail, length_wavnam)  \
C09BAF(wavnam, length_wavnam, wparam, n, x, nscal, scales, c, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define c09baf_ C09BAF
#else
#define C09BAF c09baf_
#endif
extern void NAG_CALL C09BAF(
  CONST char * wavnam
#ifdef USE_STDCALL
,  CONST Charlen length_wavnam
#endif
,
  CONST Integer REFPTR wparam,
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR nscal,
  CONST Integer scales[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_wavnam
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define c09caf_ C09CAF
#else
#define C09CAF c09caf_
#endif
extern void NAG_CALL C09CAF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR lenc,
  double ca[] /* 1 dimension */,
  double cd[] /* 1 dimension */,
  Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09cbf_ C09CBF
#else
#define C09CBF c09cbf_
#endif
extern void NAG_CALL C09CBF(
  CONST Integer REFPTR lenc,
  CONST double ca[] /* 1 dimension */,
  CONST double cd[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  CONST Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09ccf_ C09CCF
#else
#define C09CCF c09ccf_
#endif
extern void NAG_CALL C09CCF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR lenc,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR nwl,
  Integer dwtlev[] /* 1 dimension */,
  Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09cdf_ C09CDF
#else
#define C09CDF c09cdf_
#endif
extern void NAG_CALL C09CDF(
  CONST Integer REFPTR nwl,
  CONST Integer REFPTR lenc,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  CONST Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09eaf_ C09EAF
#else
#define C09EAF c09eaf_
#endif
extern void NAG_CALL C09EAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double ca[] /* 2 dimension */,
  CONST Integer REFPTR ldca,
  double ch[] /* 2 dimension */,
  CONST Integer REFPTR ldch,
  double cv[] /* 2 dimension */,
  CONST Integer REFPTR ldcv,
  double cd[] /* 2 dimension */,
  CONST Integer REFPTR ldcd,
  CONST Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09ebf_ C09EBF
#else
#define C09EBF c09ebf_
#endif
extern void NAG_CALL C09EBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double ca[] /* 2 dimension */,
  CONST Integer REFPTR ldca,
  CONST double ch[] /* 2 dimension */,
  CONST Integer REFPTR ldch,
  CONST double cv[] /* 2 dimension */,
  CONST Integer REFPTR ldcv,
  CONST double cd[] /* 2 dimension */,
  CONST Integer REFPTR ldcd,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09ecf_ C09ECF
#else
#define C09ECF c09ecf_
#endif
extern void NAG_CALL C09ECF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR lenc,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR nwl,
  Integer dwtlvm[] /* 1 dimension */,
  Integer dwtlvn[] /* 1 dimension */,
  Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define c09edf_ C09EDF
#else
#define C09EDF c09edf_
#endif
extern void NAG_CALL C09EDF(
  CONST Integer REFPTR nwl,
  CONST Integer REFPTR lenc,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer icomm[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01ahf_ D01AHF
#else
#define D01AHF d01ahf_
#endif
extern double NAG_CALL D01AHF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR epsr,
  Integer REFPTR npts,
  double REFPTR relerr,
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST Integer REFPTR nlimit,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01ajf_ D01AJF
#else
#define D01AJF d01ajf_
#endif
extern void NAG_CALL D01AJF(
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01akf_ D01AKF
#else
#define D01AKF d01akf_
#endif
extern void NAG_CALL D01AKF(
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01alf_ D01ALF
#else
#define D01ALF d01alf_
#endif
extern void NAG_CALL D01ALF(
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR npts,
  CONST double points[] /* 1 dimension */,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01amf_ D01AMF
#else
#define D01AMF d01amf_
#endif
extern void NAG_CALL D01AMF(
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST double REFPTR bound,
  CONST Integer REFPTR inf,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01anf_ D01ANF
#else
#define D01ANF d01anf_
#endif
extern void NAG_CALL D01ANF(
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR omega,
  CONST Integer REFPTR key,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01apf_ D01APF
#else
#define D01APF d01apf_
#endif
extern void NAG_CALL D01APF(
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR alfa,
  CONST double REFPTR beta,
  CONST Integer REFPTR key,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01aqf_ D01AQF
#else
#define D01AQF d01aqf_
#endif
extern void NAG_CALL D01AQF(
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR c,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01arf_ D01ARF
#else
#define D01ARF d01arf_
#endif
extern void NAG_CALL D01ARF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  double (NAG_CALL *fun)(
                         CONST double REFPTR ),
  CONST double REFPTR relacc,
  CONST double REFPTR absacc,
  CONST Integer REFPTR maxrul,
  CONST Integer REFPTR iparm,
  double REFPTR acc,
  double REFPTR ans,
  Integer REFPTR n,
  double alpha[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01asf_ D01ASF
#else
#define D01ASF d01asf_
#endif
extern void NAG_CALL D01ASF(
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR omega,
  CONST Integer REFPTR key,
  CONST double REFPTR epsabs,
  double REFPTR result,
  double REFPTR abserr,
  CONST Integer REFPTR limlst,
  Integer REFPTR lst,
  double erlst[] /* 1 dimension */,
  double rslst[] /* 1 dimension */,
  Integer ierlst[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01atf_ D01ATF
#else
#define D01ATF d01atf_
#endif
extern void NAG_CALL D01ATF(
  void (NAG_CALL *f)(
                     CONST double[],
                     double[],
                     CONST Integer REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01auf_ D01AUF
#else
#define D01AUF d01auf_
#endif
extern void NAG_CALL D01AUF(
  void (NAG_CALL *f)(
                     CONST double[],
                     double[],
                     CONST Integer REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR key,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01baf_ D01BAF
#else
#define D01BAF d01baf_
#endif
extern double NAG_CALL D01BAF(
  void (NAG_CALL *d01xxx)(
                          Integer REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR n,
  double (NAG_CALL *fun)(
                         CONST double REFPTR ),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01baw_ D01BAW
#else
#define D01BAW d01baw_
#endif
extern void NAG_CALL D01BAW(
  Integer REFPTR iflag
);
#if defined (_WIN32) || defined (_WIN64)
#define d01bax_ D01BAX
#else
#define D01BAX d01bax_
#endif
extern void NAG_CALL D01BAX(
  Integer REFPTR iflag
);
#if defined (_WIN32) || defined (_WIN64)
#define d01bay_ D01BAY
#else
#define D01BAY d01bay_
#endif
extern void NAG_CALL D01BAY(
  Integer REFPTR iflag
);
#if defined (_WIN32) || defined (_WIN64)
#define d01baz_ D01BAZ
#else
#define D01BAZ d01baz_
#endif
extern void NAG_CALL D01BAZ(
  Integer REFPTR iflag
);
#if defined (_WIN32) || defined (_WIN64)
#define d01bbf_ D01BBF
#else
#define D01BBF d01bbf_
#endif
extern void NAG_CALL D01BBF(
  void (NAG_CALL *d01xxx)(
                          Integer REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR itype,
  CONST Integer REFPTR n,
  double weight[] /* 1 dimension */,
  double abscis[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01bcf_ D01BCF
#else
#define D01BCF d01bcf_
#endif
extern void NAG_CALL D01BCF(
  CONST Integer REFPTR itype,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR c,
  CONST double REFPTR d,
  CONST Integer REFPTR n,
  double weight[] /* 1 dimension */,
  double abscis[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01bdf_ D01BDF
#else
#define D01BDF d01bdf_
#endif
extern void NAG_CALL D01BDF(
  double (NAG_CALL *f)(
                       CONST double REFPTR ),
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR epsabs,
  CONST double REFPTR epsrel,
  double REFPTR result,
  double REFPTR abserr
);
#if defined (_WIN32) || defined (_WIN64)
#define d01daf_ D01DAF
#else
#define D01DAF d01daf_
#endif
extern void NAG_CALL D01DAF(
  CONST double REFPTR ya,
  CONST double REFPTR yb,
  double (NAG_CALL *phi1)(
                          CONST double REFPTR ),
  double (NAG_CALL *phi2)(
                          CONST double REFPTR ),
  double (NAG_CALL *f)(
                       CONST double REFPTR ,
                       CONST double REFPTR ),
  CONST double REFPTR absacc,
  double REFPTR ans,
  Integer REFPTR npts,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01eaf_ D01EAF
#else
#define D01EAF d01eaf_
#endif
extern void NAG_CALL D01EAF(
  CONST Integer REFPTR ndim,
  CONST double a[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  Integer REFPTR mincls,
  CONST Integer REFPTR maxcls,
  CONST Integer REFPTR nfun,
  void (NAG_CALL *funsub)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[]),
  CONST double REFPTR absreq,
  CONST double REFPTR relreq,
  CONST Integer REFPTR lenwrk,
  double wrkstr[] /* 1 dimension */,
  double finest[] /* 1 dimension */,
  double absest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01fbf_ D01FBF
#else
#define D01FBF d01fbf_
#endif
extern double NAG_CALL D01FBF(
  CONST Integer REFPTR ndim,
  CONST Integer nptvec[] /* 1 dimension */,
  CONST Integer REFPTR lwa,
  CONST double weight[] /* 1 dimension */,
  CONST double abscis[] /* 1 dimension */,
  double (NAG_CALL *fun)(
                         CONST Integer REFPTR ,
                         CONST double[]),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01fcf_ D01FCF
#else
#define D01FCF d01fcf_
#endif
extern void NAG_CALL D01FCF(
  CONST Integer REFPTR ndim,
  CONST double a[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  Integer REFPTR minpts,
  CONST Integer REFPTR maxpts,
  double (NAG_CALL *functn)(
                            CONST Integer REFPTR ,
                            CONST double[]),
  CONST double REFPTR eps,
  double REFPTR acc,
  CONST Integer REFPTR lenwrk,
  double wrkstr[] /* 1 dimension */,
  double REFPTR finval,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01fdf_ D01FDF
#else
#define D01FDF d01fdf_
#endif
extern void NAG_CALL D01FDF(
  CONST Integer REFPTR ndim,
  double (NAG_CALL *f)(
                       CONST Integer REFPTR ,
                       CONST double[]),
  CONST double REFPTR sigma,
  void (NAG_CALL *region)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ),
  CONST Integer REFPTR limit,
  CONST double REFPTR r0,
  CONST double REFPTR u,
  double REFPTR result,
  Integer REFPTR ncalls,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01fdv_ D01FDV
#else
#define D01FDV d01fdv_
#endif
extern void NAG_CALL D01FDV(
  CONST Integer REFPTR ndim,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR j,
  double REFPTR c,
  double REFPTR d
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gaf_ D01GAF
#else
#define D01GAF d01gaf_
#endif
extern void NAG_CALL D01GAF(
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double REFPTR ans,
  double REFPTR er,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gbf_ D01GBF
#else
#define D01GBF d01gbf_
#endif
extern void NAG_CALL D01GBF(
  CONST Integer REFPTR ndim,
  CONST double a[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  Integer REFPTR mincls,
  CONST Integer REFPTR maxcls,
  double (NAG_CALL *functn)(
                            CONST Integer REFPTR ,
                            CONST double[]),
  CONST double REFPTR eps,
  double REFPTR acc,
  CONST Integer REFPTR lenwrk,
  double wrkstr[] /* 1 dimension */,
  double REFPTR finest,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gcf_ D01GCF
#else
#define D01GCF d01gcf_
#endif
extern void NAG_CALL D01GCF(
  CONST Integer REFPTR ndim,
  double (NAG_CALL *f)(
                       CONST Integer REFPTR ,
                       CONST double[]),
  void (NAG_CALL *region)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ),
  CONST Integer REFPTR npts,
  double vk[] /* 1 dimension */,
  CONST Integer REFPTR nrand,
  CONST Integer REFPTR itrans,
  double REFPTR res,
  double REFPTR err,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gdf_ D01GDF
#else
#define D01GDF d01gdf_
#endif
extern void NAG_CALL D01GDF(
  CONST Integer REFPTR ndim,
  void (NAG_CALL *vecfun)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *vecreg)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          CONST Integer REFPTR ),
  CONST Integer REFPTR npts,
  double vk[] /* 1 dimension */,
  CONST Integer REFPTR nrand,
  CONST Integer REFPTR itrans,
  double REFPTR res,
  double REFPTR err,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gyf_ D01GYF
#else
#define D01GYF d01gyf_
#endif
extern void NAG_CALL D01GYF(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR npts,
  double vk[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01gzf_ D01GZF
#else
#define D01GZF d01gzf_
#endif
extern void NAG_CALL D01GZF(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR np1,
  CONST Integer REFPTR np2,
  double vk[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01jaf_ D01JAF
#else
#define D01JAF d01jaf_
#endif
extern void NAG_CALL D01JAF(
  double (NAG_CALL *f)(
                       CONST Integer REFPTR ,
                       CONST double[]),
  CONST Integer REFPTR ndim,
  CONST double REFPTR radius,
  CONST double REFPTR epsa,
  CONST double REFPTR epsr,
  CONST Integer REFPTR method,
  CONST Integer REFPTR icoord,
  double REFPTR result,
  double REFPTR esterr,
  Integer REFPTR nevals,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01paf_ D01PAF
#else
#define D01PAF d01paf_
#endif
extern void NAG_CALL D01PAF(
  CONST Integer REFPTR ndim,
  double vert[] /* 2 dimension */,
  CONST Integer REFPTR ldvert,
  CONST Integer REFPTR sdvert,
  double (NAG_CALL *functn)(
                            CONST Integer REFPTR ,
                            CONST double[]),
  Integer REFPTR minord,
  CONST Integer REFPTR maxord,
  double finvls[] /* 1 dimension */,
  double REFPTR esterr,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d01tbf_ D01TBF
#else
#define D01TBF d01tbf_
#endif
extern void NAG_CALL D01TBF(
  CONST Integer REFPTR key,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR n,
  double weight[] /* 1 dimension */,
  double abscis[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02agf_ D02AGF
#else
#define D02AGF d02agf_
#endif
extern void NAG_CALL D02AGF(
  double REFPTR h,
  CONST double e[] /* 1 dimension */,
  CONST double parerr[] /* 1 dimension */,
  double param[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR n1,
  CONST Integer REFPTR m1,
  void (NAG_CALL *aux)(
                       double[],
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double[]),
  void (NAG_CALL *bcaux)(
                         double[],
                         double[],
                         CONST double[]),
  void (NAG_CALL *raaux)(
                         double REFPTR ,
                         double REFPTR ,
                         double REFPTR ,
                         CONST double[]),
  void (NAG_CALL *prsol)(
                         CONST double[],
                         CONST double REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[]),
  double mat[] /* 2 dimension */,
  CONST double copy[] /* 2 dimension */,
  double wspace[] /* 2 dimension */,
  double wspac1[] /* 1 dimension */,
  double wspac2[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02bgf_ D02BGF
#else
#define D02BGF d02bgf_
#endif
extern void NAG_CALL D02BGF(
  double REFPTR x,
  CONST double REFPTR xend,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  double REFPTR tol,
  CONST double REFPTR hmax,
  CONST Integer REFPTR m,
  CONST double REFPTR val,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  double w[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02bhf_ D02BHF
#else
#define D02BHF d02bhf_
#endif
extern void NAG_CALL D02BHF(
  double REFPTR x,
  CONST double REFPTR xend,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  double REFPTR tol,
  CONST Integer REFPTR irelab,
  CONST double REFPTR hmax,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  double (NAG_CALL *g)(
                       CONST double REFPTR ,
                       CONST double[]),
  double w[] /* 2 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02bjf_(x, xend, n, y, fcn, tol, relabs, output, g, w, ifail, length_relabs)  \
D02BJF(x, xend, n, y, fcn, tol, relabs, length_relabs, output, g, w, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02bjf_ D02BJF
#else
#define D02BJF d02bjf_
#endif
extern void NAG_CALL D02BJF(
  double REFPTR x,
  CONST double REFPTR xend,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  CONST double REFPTR tol,
  CONST char * relabs
#ifdef USE_STDCALL
,  CONST Charlen length_relabs
#endif
,
  void (NAG_CALL *output)(
                          double REFPTR ,
                          CONST double[]),
  double (NAG_CALL *g)(
                       CONST double REFPTR ,
                       CONST double[]),
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_relabs
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02bjw_ D02BJW
#else
#define D02BJW d02bjw_
#endif
extern double NAG_CALL D02BJW(
  CONST double REFPTR x,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02bjx_ D02BJX
#else
#define D02BJX d02bjx_
#endif
extern void NAG_CALL D02BJX(
  double REFPTR xsol,
  CONST double y[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02cjf_(x, xend, n, y, fcn, tol, relabs, output, g, w, ifail, length_relabs)  \
D02CJF(x, xend, n, y, fcn, tol, relabs, length_relabs, output, g, w, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02cjf_ D02CJF
#else
#define D02CJF d02cjf_
#endif
extern void NAG_CALL D02CJF(
  double REFPTR x,
  CONST double REFPTR xend,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  CONST double REFPTR tol,
  CONST char * relabs
#ifdef USE_STDCALL
,  CONST Charlen length_relabs
#endif
,
  void (NAG_CALL *output)(
                          double REFPTR ,
                          CONST double[]),
  double (NAG_CALL *g)(
                       CONST double REFPTR ,
                       CONST double[]),
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_relabs
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02cjw_ D02CJW
#else
#define D02CJW d02cjw_
#endif
extern double NAG_CALL D02CJW(
  CONST double REFPTR x,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02cjx_ D02CJX
#else
#define D02CJX d02cjx_
#endif
extern void NAG_CALL D02CJX(
  double REFPTR xsol,
  CONST double y[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02ejf_(x, xend, n, y, fcn, pederv, tol, relabs, output, g, w, iw, ifail, length_relabs)  \
D02EJF(x, xend, n, y, fcn, pederv, tol, relabs, length_relabs, output, g, w, iw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02ejf_ D02EJF
#else
#define D02EJF d02ejf_
#endif
extern void NAG_CALL D02EJF(
  double REFPTR x,
  CONST double REFPTR xend,
  CONST Integer REFPTR n,
  double y[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  void (NAG_CALL *pederv)(
                          CONST double REFPTR ,
                          CONST double[],
                          double[]),
  double REFPTR tol,
  CONST char * relabs
#ifdef USE_STDCALL
,  CONST Charlen length_relabs
#endif
,
  void (NAG_CALL *output)(
                          double REFPTR ,
                          CONST double[]),
  double (NAG_CALL *g)(
                       CONST double REFPTR ,
                       CONST double[]),
  double w[] /* 1 dimension */,
  CONST Integer REFPTR iw,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_relabs
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ejw_ D02EJW
#else
#define D02EJW d02ejw_
#endif
extern double NAG_CALL D02EJW(
  CONST double REFPTR x,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ejx_ D02EJX
#else
#define D02EJX d02ejx_
#endif
extern void NAG_CALL D02EJX(
  double REFPTR xsol,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ejy_ D02EJY
#else
#define D02EJY d02ejy_
#endif
extern void NAG_CALL D02EJY(
  CONST double REFPTR x,
  CONST double y[] /* 1 dimension */,
  double pw[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gaf_ D02GAF
#else
#define D02GAF d02gaf_
#endif
extern void NAG_CALL D02GAF(
  CONST double u[] /* 2 dimension */,
  CONST double v[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR tol,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  CONST Integer REFPTR mnp,
  double x[] /* 1 dimension */,
  double y[] /* 2 dimension */,
  Integer REFPTR np,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gaw_ D02GAW
#else
#define D02GAW d02gaw_
#endif
extern void NAG_CALL D02GAW(
  CONST double REFPTR x,
  CONST double REFPTR eps,
  CONST double y[] /* 1 dimension */,
  double f[] /* 1 dimension */,
  CONST Integer REFPTR n
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gax_ D02GAX
#else
#define D02GAX d02gax_
#endif
extern void NAG_CALL D02GAX(
  CONST double REFPTR eps,
  CONST double ya[] /* 1 dimension */,
  CONST double yb[] /* 1 dimension */,
  double bcep[] /* 1 dimension */,
  CONST Integer REFPTR n
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gay_ D02GAY
#else
#define D02GAY d02gay_
#endif
extern void NAG_CALL D02GAY(
  CONST double REFPTR eps,
  CONST double ya[] /* 1 dimension */,
  CONST double yb[] /* 1 dimension */,
  double aj[] /* 2 dimension */,
  double bj[] /* 2 dimension */,
  CONST Integer REFPTR n
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gaz_ D02GAZ
#else
#define D02GAZ d02gaz_
#endif
extern void NAG_CALL D02GAZ(
  CONST double REFPTR x,
  CONST double REFPTR eps,
  CONST double y[] /* 1 dimension */,
  double f[] /* 2 dimension */,
  CONST Integer REFPTR n
);
#if defined (_WIN32) || defined (_WIN64)
#define d02gbf_ D02GBF
#else
#define D02GBF d02gbf_
#endif
extern void NAG_CALL D02GBF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR n,
  CONST double REFPTR tol,
  void (NAG_CALL *fcnf)(
                        CONST double REFPTR ,
                        double[]),
  void (NAG_CALL *fcng)(
                        CONST double REFPTR ,
                        double[]),
  double c[] /* 2 dimension */,
  double d[] /* 2 dimension */,
  double gam[] /* 1 dimension */,
  CONST Integer REFPTR mnp,
  double x[] /* 1 dimension */,
  double y[] /* 2 dimension */,
  Integer REFPTR np,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02haf_ D02HAF
#else
#define D02HAF d02haf_
#endif
extern void NAG_CALL D02HAF(
  double u[] /* 2 dimension */,
  CONST double v[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR tol,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  double soln[] /* 2 dimension */,
  CONST Integer REFPTR m1,
  double w[] /* 2 dimension */,
  CONST Integer REFPTR sdw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02hbf_ D02HBF
#else
#define D02HBF d02hbf_
#endif
extern void NAG_CALL D02HBF(
  double p[] /* 1 dimension */,
  CONST Integer REFPTR n1,
  CONST double pe[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double soln[] /* 2 dimension */,
  CONST Integer REFPTR m1,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       CONST double[]),
  void (NAG_CALL *bc)(
                      double[],
                      double[],
                      CONST double[]),
  void (NAG_CALL *range)(
                         double REFPTR ,
                         double REFPTR ,
                         CONST double[]),
  double w[] /* 2 dimension */,
  CONST Integer REFPTR sdw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02hbw_ D02HBW
#else
#define D02HBW d02hbw_
#endif
extern void NAG_CALL D02HBW(
  double REFPTR z,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR n
);
#if defined (_WIN32) || defined (_WIN64)
#define d02hbx_ D02HBX
#else
#define D02HBX d02hbx_
#endif
extern void NAG_CALL D02HBX(
  CONST Integer REFPTR istate,
  CONST Integer REFPTR iflag,
  CONST Integer REFPTR ifail1,
  CONST double p[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double f[] /* 1 dimension */,
  CONST double REFPTR pnorm,
  CONST double REFPTR pnorm1,
  CONST double REFPTR eps,
  CONST double d[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02hby_ D02HBY
#else
#define D02HBY d02hby_
#endif
extern logical NAG_CALL D02HBY(
  CONST double p[] /* 1 dimension */,
  CONST Integer REFPTR m
);
#if defined (_WIN32) || defined (_WIN64)
#define d02hbz_ D02HBZ
#else
#define D02HBZ d02hbz_
#endif
extern void NAG_CALL D02HBZ(
  double e[] /* 1 dimension */,
  CONST Integer REFPTR q,
  CONST double p[] /* 1 dimension */,
  CONST Integer REFPTR m
);
#if defined (_WIN32) || defined (_WIN64)
#define d02jaf_ D02JAF
#else
#define D02JAF d02jaf_
#endif
extern void NAG_CALL D02JAF(
  CONST Integer REFPTR n,
  double (NAG_CALL *cf)(
                        CONST Integer REFPTR ,
                        CONST double REFPTR ),
  void (NAG_CALL *bc)(
                      CONST Integer REFPTR ,
                      Integer REFPTR ,
                      double REFPTR ),
  CONST double REFPTR x0,
  CONST double REFPTR x1,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR kp,
  double c[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02jbf_ D02JBF
#else
#define D02JBF d02jbf_
#endif
extern void NAG_CALL D02JBF(
  CONST Integer REFPTR n,
  double (NAG_CALL *cf)(
                        CONST Integer REFPTR ,
                        CONST Integer REFPTR ,
                        CONST double REFPTR ),
  void (NAG_CALL *bc)(
                      CONST Integer REFPTR ,
                      Integer REFPTR ,
                      double REFPTR ),
  CONST double REFPTR x0,
  CONST double REFPTR x1,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR kp,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02kaf_ D02KAF
#else
#define D02KAF d02kaf_
#endif
extern void NAG_CALL D02KAF(
  CONST double REFPTR xl,
  CONST double REFPTR xr,
  void (NAG_CALL *coeffn)(
                          double REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ),
  double bcond[] /* 2 dimension */,
  CONST Integer REFPTR k,
  CONST double REFPTR tol,
  double REFPTR elam,
  double REFPTR delam,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[]),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02kay_ D02KAY
#else
#define D02KAY d02kay_
#endif
extern void NAG_CALL D02KAY(
  CONST Integer REFPTR nit,
  CONST Integer REFPTR iflag,
  CONST double REFPTR elam,
  CONST double finfo[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02kdf_ D02KDF
#else
#define D02KDF d02kdf_
#endif
extern void NAG_CALL D02KDF(
  CONST double xpoint[] /* 1 dimension */,
  CONST Integer REFPTR m,
  void (NAG_CALL *coeffn)(
                          double REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ),
  void (NAG_CALL *bdyval)(
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double[],
                          double[]),
  CONST Integer REFPTR k,
  CONST double REFPTR tol,
  double REFPTR elam,
  double REFPTR delam,
  double hmax[] /* 2 dimension */,
  Integer REFPTR maxit,
  CONST Integer REFPTR maxfun,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[]),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02kef_ D02KEF
#else
#define D02KEF d02kef_
#endif
extern void NAG_CALL D02KEF(
  CONST double xpoint[] /* 1 dimension */,
  CONST Integer REFPTR m,
  Integer REFPTR match,
  void (NAG_CALL *coeffn)(
                          double REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ),
  void (NAG_CALL *bdyval)(
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double[],
                          double[]),
  CONST Integer REFPTR k,
  CONST double REFPTR tol,
  double REFPTR elam,
  double REFPTR delam,
  double hmax[] /* 2 dimension */,
  Integer REFPTR maxit,
  CONST Integer REFPTR maxfun,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[]),
  void (NAG_CALL *report)(
                          CONST double REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02laf_ D02LAF
#else
#define D02LAF d02laf_
#endif
extern void NAG_CALL D02LAF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  CONST Integer REFPTR neq,
  double REFPTR t,
  CONST double REFPTR tend,
  double y[] /* 1 dimension */,
  double yp[] /* 1 dimension */,
  double ydp[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02lxf_ D02LXF
#else
#define D02LXF d02lxf_
#endif
extern void NAG_CALL D02LXF(
  CONST Integer REFPTR neq,
  CONST double REFPTR h,
  CONST double REFPTR tol,
  CONST double thres[] /* 1 dimension */,
  CONST double thresp[] /* 1 dimension */,
  CONST Integer REFPTR maxstp,
  logical REFPTR start,
  CONST logical REFPTR onestp,
  CONST logical REFPTR high,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02lyf_ D02LYF
#else
#define D02LYF d02lyf_
#endif
extern void NAG_CALL D02LYF(
  CONST Integer REFPTR neq,
  double REFPTR hnext,
  double REFPTR hused,
  double REFPTR hstart,
  Integer REFPTR nsucc,
  Integer REFPTR nfail,
  Integer REFPTR natt,
  double thres[] /* 1 dimension */,
  double thresp[] /* 1 dimension */,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02lzf_ D02LZF
#else
#define D02LZF d02lzf_
#endif
extern void NAG_CALL D02LZF(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double yp[] /* 1 dimension */,
  CONST Integer REFPTR nwant,
  CONST double REFPTR twant,
  double ywant[] /* 1 dimension */,
  double ypwant[] /* 1 dimension */,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02mcf_ D02MCF
#else
#define D02MCF d02mcf_
#endif
extern void NAG_CALL D02MCF(
  Integer icom[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02mvf_(neqmax, sdysav, maxord, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, rwork, ifail, length_norm)  \
D02MVF(neqmax, sdysav, maxord, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, length_norm, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02mvf_ D02MVF
#else
#define D02MVF d02mvf_
#endif
extern void NAG_CALL D02MVF(
  CONST Integer REFPTR neqmax,
  CONST Integer REFPTR sdysav,
  CONST Integer REFPTR maxord,
  double con[] /* 1 dimension */,
  CONST double REFPTR tcrit,
  CONST double REFPTR hmin,
  CONST double REFPTR hmax,
  CONST double REFPTR h0,
  CONST Integer REFPTR maxstp,
  CONST Integer REFPTR mxhnil,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02mwf_(neq, maxord, jceval, hmax, h0, itol, icom, licom, com, lcom, ifail, length_jceval)  \
D02MWF(neq, maxord, jceval, length_jceval, hmax, h0, itol, icom, licom, com, lcom, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02mwf_ D02MWF
#else
#define D02MWF d02mwf_
#endif
extern void NAG_CALL D02MWF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR maxord,
  CONST char * jceval
#ifdef USE_STDCALL
,  CONST Charlen length_jceval
#endif
,
  CONST double REFPTR hmax,
  CONST double REFPTR h0,
  CONST Integer REFPTR itol,
  Integer icom[] /* 1 dimension */,
  CONST Integer REFPTR licom,
  double com[] /* 1 dimension */,
  CONST Integer REFPTR lcom,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_jceval
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02mzf_ D02MZF
#else
#define D02MZF d02mzf_
#endif
extern void NAG_CALL D02MZF(
  CONST double REFPTR tsol,
  double sol[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST Integer REFPTR ldysav,
  CONST Integer REFPTR neq,
  CONST double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  CONST double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nbf_ D02NBF
#else
#define D02NBF d02nbf_
#endif
extern void NAG_CALL D02NBF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  CONST double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nby_ D02NBY
#else
#define D02NBY d02nby_
#endif
extern void NAG_CALL D02NBY(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  CONST double REFPTR t,
  CONST double REFPTR hlast,
  double REFPTR hnext,
  double y[] /* 1 dimension */,
  CONST double ydot[] /* 1 dimension */,
  CONST double ysav[] /* 2 dimension */,
  CONST double r[] /* 1 dimension */,
  CONST double acor[] /* 2 dimension */,
  Integer REFPTR imon,
  Integer REFPTR inln,
  double REFPTR hmin,
  double REFPTR hmax,
  CONST Integer REFPTR nqu
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nbz_ D02NBZ
#else
#define D02NBZ d02nbz_
#endif
extern void NAG_CALL D02NBZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  double p[] /* 2 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ncf_ D02NCF
#else
#define D02NCF d02ncf_
#endif
extern void NAG_CALL D02NCF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  CONST double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       CONST Integer REFPTR ,
                       CONST Integer REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ncz_ D02NCZ
#else
#define D02NCZ d02ncz_
#endif
extern void NAG_CALL D02NCZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  double p[] /* 2 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ndf_ D02NDF
#else
#define D02NDF d02ndf_
#endif
extern void NAG_CALL D02NDF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  CONST double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       CONST Integer REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ndz_ D02NDZ
#else
#define D02NDZ d02ndz_
#endif
extern void NAG_CALL D02NDZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  CONST Integer REFPTR j,
  double pdj[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nef_ D02NEF
#else
#define D02NEF d02nef_
#endif
extern void NAG_CALL D02NEF(
  CONST Integer REFPTR neq,
  double REFPTR t,
  CONST double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rtol[] /* 1 dimension */,
  double atol[] /* 1 dimension */,
  Integer REFPTR itask,
  void (NAG_CALL *res)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       double[],
                       Integer REFPTR ,
                       Integer[],
                       double[]),
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       double[],
                       CONST double REFPTR ,
                       Integer[],
                       double[]),
  Integer icom[] /* 1 dimension */,
  double com[] /* 1 dimension */,
  CONST Integer REFPTR lcom,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nez_ D02NEZ
#else
#define D02NEZ d02nez_
#endif
extern void NAG_CALL D02NEZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double ydot[] /* 1 dimension */,
  double pd[] /* 1 dimension */,
  CONST double REFPTR cj,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ngf_ D02NGF
#else
#define D02NGF d02ngf_
#endif
extern void NAG_CALL D02NGF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *resid)(
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[],
                         Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  logical lderiv[] /* 1 dimension */,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ngz_ D02NGZ
#else
#define D02NGZ d02ngz_
#endif
extern void NAG_CALL D02NGZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double ydot[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  double p[] /* 2 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nhf_ D02NHF
#else
#define D02NHF d02nhf_
#endif
extern void NAG_CALL D02NHF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *resid)(
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[],
                         Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       CONST Integer REFPTR ,
                       CONST Integer REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  logical lderiv[] /* 1 dimension */,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nhz_ D02NHZ
#else
#define D02NHZ d02nhz_
#endif
extern void NAG_CALL D02NHZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double ydot[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  double p[] /* 2 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02njf_ D02NJF
#else
#define D02NJF d02njf_
#endif
extern void NAG_CALL D02NJF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  void (NAG_CALL *resid)(
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[],
                         Integer REFPTR ),
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  void (NAG_CALL *jac)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       CONST Integer REFPTR ,
                       double[]),
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double REFPTR ,
                          double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          Integer REFPTR ,
                          Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          CONST Integer REFPTR ),
  logical lderiv[] /* 1 dimension */,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02njz_ D02NJZ
#else
#define D02NJZ d02njz_
#endif
extern void NAG_CALL D02NJZ(
  CONST Integer REFPTR neq,
  CONST double REFPTR t,
  CONST double y[] /* 1 dimension */,
  CONST double ydot[] /* 1 dimension */,
  CONST double REFPTR h,
  CONST double REFPTR d,
  CONST Integer REFPTR j,
  double pdj[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nmf_ D02NMF
#else
#define D02NMF d02nmf_
#endif
extern void NAG_CALL D02NMF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  CONST double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  Integer REFPTR imon,
  Integer REFPTR inln,
  Integer REFPTR ires,
  Integer REFPTR irevcm,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nnf_ D02NNF
#else
#define D02NNF d02nnf_
#endif
extern void NAG_CALL D02NNF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ldysav,
  double REFPTR t,
  double REFPTR tout,
  double y[] /* 1 dimension */,
  double ydot[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  Integer inform[] /* 1 dimension */,
  double ysav[] /* 2 dimension */,
  CONST Integer REFPTR sdysav,
  double wkjac[] /* 1 dimension */,
  CONST Integer REFPTR nwkjac,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  Integer REFPTR imon,
  Integer REFPTR inln,
  Integer REFPTR ires,
  Integer REFPTR irevcm,
  logical lderiv[] /* 1 dimension */,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02npf_ D02NPF
#else
#define D02NPF d02npf_
#endif
extern void NAG_CALL D02NPF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  Integer icom[] /* 1 dimension */,
  CONST Integer REFPTR licom,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nrf_ D02NRF
#else
#define D02NRF d02nrf_
#endif
extern void NAG_CALL D02NRF(
  Integer REFPTR j,
  Integer REFPTR iplace,
  CONST Integer inform[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02nsf_(neq, neqmax, jceval, nwkjac, rwork, ifail, length_jceval)  \
D02NSF(neq, neqmax, jceval, length_jceval, nwkjac, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02nsf_ D02NSF
#else
#define D02NSF d02nsf_
#endif
extern void NAG_CALL D02NSF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR neqmax,
  CONST char * jceval
#ifdef USE_STDCALL
,  CONST Charlen length_jceval
#endif
,
  CONST Integer REFPTR nwkjac,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_jceval
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02ntf_(neq, neqmax, jceval, ml, mu, nwkjac, njcpvt, rwork, ifail, length_jceval)  \
D02NTF(neq, neqmax, jceval, length_jceval, ml, mu, nwkjac, njcpvt, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02ntf_ D02NTF
#else
#define D02NTF d02ntf_
#endif
extern void NAG_CALL D02NTF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR neqmax,
  CONST char * jceval
#ifdef USE_STDCALL
,  CONST Charlen length_jceval
#endif
,
  CONST Integer REFPTR ml,
  CONST Integer REFPTR mu,
  CONST Integer REFPTR nwkjac,
  CONST Integer REFPTR njcpvt,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_jceval
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02nuf_(neq, neqmax, jceval, nwkjac, ia, nia, ja, nja, jacpvt, njcpvt, sens, u, eta, lblock, isplit, rwork, ifail, length_jceval)  \
D02NUF(neq, neqmax, jceval, length_jceval, nwkjac, ia, nia, ja, nja, jacpvt, njcpvt, sens, u, eta, lblock, isplit, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02nuf_ D02NUF
#else
#define D02NUF d02nuf_
#endif
extern void NAG_CALL D02NUF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR neqmax,
  CONST char * jceval
#ifdef USE_STDCALL
,  CONST Charlen length_jceval
#endif
,
  CONST Integer REFPTR nwkjac,
  CONST Integer ia[] /* 1 dimension */,
  CONST Integer REFPTR nia,
  CONST Integer ja[] /* 1 dimension */,
  CONST Integer REFPTR nja,
  Integer jacpvt[] /* 1 dimension */,
  CONST Integer REFPTR njcpvt,
  CONST double REFPTR sens,
  CONST double REFPTR u,
  CONST double REFPTR eta,
  CONST logical REFPTR lblock,
  CONST Integer REFPTR isplit,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_jceval
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02nvf_(neqmax, sdysav, maxord, method, petzld, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, rwork, ifail, length_method, length_norm)  \
D02NVF(neqmax, sdysav, maxord, method, length_method, petzld, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, length_norm, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02nvf_ D02NVF
#else
#define D02NVF d02nvf_
#endif
extern void NAG_CALL D02NVF(
  CONST Integer REFPTR neqmax,
  CONST Integer REFPTR sdysav,
  CONST Integer REFPTR maxord,
  CONST char * method
#ifdef USE_STDCALL
,  CONST Charlen length_method
#endif
,
  CONST logical REFPTR petzld,
  double con[] /* 1 dimension */,
  CONST double REFPTR tcrit,
  CONST double REFPTR hmin,
  CONST double REFPTR hmax,
  CONST double REFPTR h0,
  CONST Integer REFPTR maxstp,
  CONST Integer REFPTR mxhnil,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_method,
 CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02nwf_(neqmax, sdysav, maxord, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, rwork, ifail, length_norm)  \
D02NWF(neqmax, sdysav, maxord, con, tcrit, hmin, hmax, h0, maxstp, mxhnil, norm, length_norm, rwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02nwf_ D02NWF
#else
#define D02NWF d02nwf_
#endif
extern void NAG_CALL D02NWF(
  CONST Integer REFPTR neqmax,
  CONST Integer REFPTR sdysav,
  CONST Integer REFPTR maxord,
  double con[] /* 1 dimension */,
  CONST double REFPTR tcrit,
  CONST double REFPTR hmin,
  CONST double REFPTR hmax,
  CONST double REFPTR h0,
  CONST Integer REFPTR maxstp,
  CONST Integer REFPTR mxhnil,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nxf_ D02NXF
#else
#define D02NXF d02nxf_
#endif
extern void NAG_CALL D02NXF(
  CONST Integer REFPTR icall,
  Integer REFPTR liwreq,
  Integer REFPTR liwusd,
  Integer REFPTR lrwreq,
  Integer REFPTR lrwusd,
  Integer REFPTR nlu,
  Integer REFPTR nnz,
  Integer REFPTR ngp,
  Integer REFPTR isplit,
  Integer REFPTR igrow,
  CONST logical REFPTR lblock,
  Integer REFPTR nblock,
  CONST Integer inform[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nyf_ D02NYF
#else
#define D02NYF d02nyf_
#endif
extern void NAG_CALL D02NYF(
  CONST Integer REFPTR neq,
  CONST Integer REFPTR neqmax,
  double REFPTR hu,
  double REFPTR h,
  double REFPTR tcur,
  double REFPTR tolsf,
  CONST double rwork[] /* 1 dimension */,
  Integer REFPTR nst,
  Integer REFPTR nre,
  Integer REFPTR nje,
  Integer REFPTR nqu,
  Integer REFPTR nq,
  Integer REFPTR niter,
  Integer REFPTR imxer,
  logical algequ[] /* 1 dimension */,
  CONST Integer inform[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02nzf_ D02NZF
#else
#define D02NZF d02nzf_
#endif
extern void NAG_CALL D02NZF(
  CONST Integer REFPTR neqmax,
  CONST double REFPTR tcrit,
  CONST double REFPTR h,
  CONST double REFPTR hmin,
  CONST double REFPTR hmax,
  CONST Integer REFPTR maxstp,
  CONST Integer REFPTR mxhnil,
  double rwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02pcf_ D02PCF
#else
#define D02PCF d02pcf_
#endif
extern void NAG_CALL D02PCF(
  void (NAG_CALL *f)(
                     CONST double REFPTR ,
                     CONST double[],
                     double[]),
  CONST double REFPTR twant,
  double REFPTR tgot,
  double ygot[] /* 1 dimension */,
  double ypgot[] /* 1 dimension */,
  double ymax[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02pdf_ D02PDF
#else
#define D02PDF d02pdf_
#endif
extern void NAG_CALL D02PDF(
  void (NAG_CALL *f)(
                     CONST double REFPTR ,
                     CONST double[],
                     double[]),
  double REFPTR tnow,
  double ynow[] /* 1 dimension */,
  double ypnow[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02pvf_(neq, tstart, ystart, tend, tol, thres, method, task, errass, hstart, work, lenwrk, ifail, length_task)  \
D02PVF(neq, tstart, ystart, tend, tol, thres, method, task, length_task, errass, hstart, work, lenwrk, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02pvf_ D02PVF
#else
#define D02PVF d02pvf_
#endif
extern void NAG_CALL D02PVF(
  CONST Integer REFPTR neq,
  CONST double REFPTR tstart,
  CONST double ystart[] /* 1 dimension */,
  CONST double REFPTR tend,
  CONST double REFPTR tol,
  CONST double thres[] /* 1 dimension */,
  CONST Integer REFPTR method,
  CONST char * task
#ifdef USE_STDCALL
,  CONST Charlen length_task
#endif
,
  CONST logical REFPTR errass,
  CONST double REFPTR hstart,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lenwrk,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_task
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02pwf_ D02PWF
#else
#define D02PWF d02pwf_
#endif
extern void NAG_CALL D02PWF(
  CONST double REFPTR tendnu,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02pxf_(twant, reqest, nwant, ywant, ypwant, f, work, wrkint, lenint, ifail, length_reqest)  \
D02PXF(twant, reqest, length_reqest, nwant, ywant, ypwant, f, work, wrkint, lenint, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02pxf_ D02PXF
#else
#define D02PXF d02pxf_
#endif
extern void NAG_CALL D02PXF(
  CONST double REFPTR twant,
  CONST char * reqest
#ifdef USE_STDCALL
,  CONST Charlen length_reqest
#endif
,
  CONST Integer REFPTR nwant,
  double ywant[] /* 1 dimension */,
  double ypwant[] /* 1 dimension */,
  void (NAG_CALL *f)(
                     CONST double REFPTR ,
                     CONST double[],
                     double[]),
  double work[] /* 1 dimension */,
  double wrkint[] /* 1 dimension */,
  CONST Integer REFPTR lenint,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_reqest
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02pyf_ D02PYF
#else
#define D02PYF d02pyf_
#endif
extern void NAG_CALL D02PYF(
  Integer REFPTR totfcn,
  Integer REFPTR stpcst,
  double REFPTR waste,
  Integer REFPTR stpsok,
  double REFPTR hnext,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02pzf_ D02PZF
#else
#define D02PZF d02pzf_
#endif
extern void NAG_CALL D02PZF(
  double rmserr[] /* 1 dimension */,
  double REFPTR errmax,
  double REFPTR terrmx,
  CONST double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qff_ D02QFF
#else
#define D02QFF d02qff_
#endif
extern void NAG_CALL D02QFF(
  void (NAG_CALL *fcn)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[]),
  CONST Integer REFPTR neqf,
  double REFPTR t,
  double y[] /* 1 dimension */,
  CONST double REFPTR tout,
  double (NAG_CALL *g)(
                       CONST Integer REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       CONST double[],
                       CONST Integer REFPTR ),
  CONST Integer REFPTR neqg,
  logical REFPTR root,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qfz_ D02QFZ
#else
#define D02QFZ d02qfz_
#endif
extern double NAG_CALL D02QFZ(
  CONST Integer REFPTR neqf,
  CONST double REFPTR x,
  CONST double y[] /* 1 dimension */,
  CONST double yp[] /* 1 dimension */,
  CONST Integer REFPTR k
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qgf_ D02QGF
#else
#define D02QGF d02qgf_
#endif
extern void NAG_CALL D02QGF(
  CONST Integer REFPTR neqf,
  double REFPTR t,
  double y[] /* 1 dimension */,
  CONST double REFPTR tout,
  CONST Integer REFPTR neqg,
  logical REFPTR root,
  Integer REFPTR irevcm,
  double REFPTR trvcm,
  Integer REFPTR yrvcm,
  Integer REFPTR yprvcm,
  CONST double REFPTR grvcm,
  Integer REFPTR kgrvcm,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d02qwf_(statef, neqf, vectol, atol, latol, rtol, lrtol, onestp, crit, tcrit, hmax, maxstp, neqg, alterg, sophst, rwork, lrwork, iwork, liwork, ifail, length_statef)  \
D02QWF(statef, length_statef, neqf, vectol, atol, latol, rtol, lrtol, onestp, crit, tcrit, hmax, maxstp, neqg, alterg, sophst, rwork, lrwork, iwork, liwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d02qwf_ D02QWF
#else
#define D02QWF d02qwf_
#endif
extern void NAG_CALL D02QWF(
  char * statef
#ifdef USE_STDCALL
,  CONST Charlen length_statef
#endif
,
  CONST Integer REFPTR neqf,
  CONST logical REFPTR vectol,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR latol,
  CONST double rtol[] /* 1 dimension */,
  CONST Integer REFPTR lrtol,
  CONST logical REFPTR onestp,
  CONST logical REFPTR crit,
  CONST double REFPTR tcrit,
  CONST double REFPTR hmax,
  CONST Integer REFPTR maxstp,
  CONST Integer REFPTR neqg,
  logical REFPTR alterg,
  CONST logical REFPTR sophst,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_statef
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qxf_ D02QXF
#else
#define D02QXF d02qxf_
#endif
extern void NAG_CALL D02QXF(
  CONST Integer REFPTR neqf,
  double yp[] /* 1 dimension */,
  double REFPTR tcurr,
  double REFPTR hlast,
  double REFPTR hnext,
  Integer REFPTR odlast,
  Integer REFPTR odnext,
  Integer REFPTR nsucc,
  Integer REFPTR nfail,
  double REFPTR tolfac,
  Integer REFPTR badcmp,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  CONST Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qyf_ D02QYF
#else
#define D02QYF d02qyf_
#endif
extern void NAG_CALL D02QYF(
  CONST Integer REFPTR neqg,
  Integer REFPTR index,
  Integer REFPTR itype,
  Integer events[] /* 1 dimension */,
  double resids[] /* 1 dimension */,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  CONST Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02qzf_ D02QZF
#else
#define D02QZF d02qzf_
#endif
extern void NAG_CALL D02QZF(
  CONST Integer REFPTR neqf,
  CONST double REFPTR twant,
  CONST Integer REFPTR nwant,
  double ywant[] /* 1 dimension */,
  double ypwant[] /* 1 dimension */,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  CONST Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02raf_ D02RAF
#else
#define D02RAF d02raf_
#endif
extern void NAG_CALL D02RAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR mnp,
  Integer REFPTR np,
  CONST Integer REFPTR numbeg,
  CONST Integer REFPTR nummix,
  CONST double REFPTR tol,
  CONST Integer REFPTR init,
  double x[] /* 1 dimension */,
  double y[] /* 2 dimension */,
  CONST Integer REFPTR ldy,
  double abt[] /* 1 dimension */,
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       CONST Integer REFPTR ),
  void (NAG_CALL *g)(
                     CONST double REFPTR ,
                     CONST double[],
                     CONST double[],
                     double[],
                     CONST Integer REFPTR ),
  CONST Integer REFPTR ijac,
  void (NAG_CALL *jacobf)(
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *jacobg)(
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ),
  double REFPTR deleps,
  void (NAG_CALL *jaceps)(
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *jacgep)(
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ),
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02saf_ D02SAF
#else
#define D02SAF d02saf_
#endif
extern void NAG_CALL D02SAF(
  double p[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR n1,
  CONST double pe[] /* 1 dimension */,
  double pf[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  double dp[] /* 1 dimension */,
  CONST Integer REFPTR npoint,
  double swp[] /* 2 dimension */,
  CONST Integer REFPTR ldswp,
  CONST Integer REFPTR icount,
  void (NAG_CALL *range)(
                         double[],
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *bc)(
                      double[],
                      double[],
                      CONST double[],
                      CONST Integer REFPTR ,
                      CONST Integer REFPTR ),
  void (NAG_CALL *fcn)(
                       CONST double REFPTR ,
                       CONST double[],
                       double[],
                       CONST Integer REFPTR ,
                       CONST double[],
                       CONST Integer REFPTR ,
                       CONST Integer REFPTR ),
  void (NAG_CALL *eqn)(
                       double[],
                       CONST Integer REFPTR ,
                       CONST double[],
                       CONST Integer REFPTR ),
  logical (NAG_CALL *constr)(
                             CONST double[],
                             CONST Integer REFPTR ),
  CONST double REFPTR ymax,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST double[]),
  void (NAG_CALL *prsol)(
                         double REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ),
  double w[] /* 2 dimension */,
  CONST Integer REFPTR ldw,
  CONST Integer REFPTR sdw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02sas_ D02SAS
#else
#define D02SAS d02sas_
#endif
extern void NAG_CALL D02SAS(
  CONST Integer REFPTR istate,
  CONST Integer REFPTR iflag,
  CONST Integer REFPTR ifail1,
  CONST double p[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double f[] /* 1 dimension */,
  CONST double REFPTR pnorm,
  CONST double REFPTR pnorm1,
  CONST double REFPTR eps,
  CONST double d[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d02tgf_ D02TGF
#else
#define D02TGF d02tgf_
#endif
extern void NAG_CALL D02TGF(
  CONST Integer REFPTR n,
  CONST Integer m[] /* 1 dimension */,
  CONST Integer l[] /* 1 dimension */,
  CONST double REFPTR x0,
  CONST double REFPTR x1,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR kp,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  void (NAG_CALL *coeff)(
                         CONST double REFPTR ,
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         double REFPTR ),
  void (NAG_CALL *bdyc)(
                        double REFPTR ,
                        CONST Integer REFPTR ,
                        CONST Integer REFPTR ,
                        double[],
                        CONST Integer REFPTR ,
                        CONST Integer REFPTR ,
                        double REFPTR ),
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02tkf_ D02TKF
#else
#define D02TKF d02tkf_
#endif
extern void NAG_CALL D02TKF(
  void (NAG_CALL *ffun)(
                        CONST double REFPTR ,
                        CONST double[],
                        CONST Integer REFPTR ,
                        CONST Integer[],
                        double[]),
  void (NAG_CALL *fjac)(
                        CONST double REFPTR ,
                        CONST double[],
                        CONST Integer REFPTR ,
                        CONST Integer[],
                        double[]),
  void (NAG_CALL *gafun)(
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         double[]),
  void (NAG_CALL *gbfun)(
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         double[]),
  void (NAG_CALL *gajac)(
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         double[]),
  void (NAG_CALL *gbjac)(
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         double[]),
  void (NAG_CALL *guess)(
                         CONST double REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer[],
                         double[],
                         double[]),
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02tvf_ D02TVF
#else
#define D02TVF d02tvf_
#endif
extern void NAG_CALL D02TVF(
  CONST Integer REFPTR neq,
  CONST Integer m[] /* 1 dimension */,
  CONST Integer REFPTR nlbc,
  CONST Integer REFPTR nrbc,
  CONST Integer REFPTR ncol,
  CONST double tols[] /* 1 dimension */,
  CONST Integer REFPTR mxmesh,
  CONST Integer REFPTR nmesh,
  CONST double mesh[] /* 1 dimension */,
  CONST Integer ipmesh[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02txf_ D02TXF
#else
#define D02TXF d02txf_
#endif
extern void NAG_CALL D02TXF(
  CONST Integer REFPTR mxmesh,
  CONST Integer REFPTR nmesh,
  CONST double mesh[] /* 1 dimension */,
  CONST Integer ipmesh[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02tyf_ D02TYF
#else
#define D02TYF d02tyf_
#endif
extern void NAG_CALL D02TYF(
  CONST double REFPTR x,
  double y[] /* 2 dimension */,
  CONST Integer REFPTR neq,
  CONST Integer REFPTR mmax,
  double rwork[] /* 1 dimension */,
  CONST Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02tzf_ D02TZF
#else
#define D02TZF d02tzf_
#endif
extern void NAG_CALL D02TZF(
  CONST Integer REFPTR mxmesh,
  Integer REFPTR nmesh,
  double mesh[] /* 1 dimension */,
  Integer ipmesh[] /* 1 dimension */,
  double REFPTR ermx,
  Integer REFPTR iermx,
  Integer REFPTR ijermx,
  CONST double rwork[] /* 1 dimension */,
  CONST Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02uaf_ D02UAF
#else
#define D02UAF d02uaf_
#endif
extern void NAG_CALL D02UAF(
  CONST Integer REFPTR n,
  CONST double f[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ubf_ D02UBF
#else
#define D02UBF d02ubf_
#endif
extern void NAG_CALL D02UBF(
  CONST Integer REFPTR n,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR q,
  CONST double c[] /* 1 dimension */,
  double f[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02ucf_ D02UCF
#else
#define D02UCF d02ucf_
#endif
extern void NAG_CALL D02UCF(
  CONST Integer REFPTR n,
  CONST double REFPTR a,
  CONST double REFPTR b,
  double x[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02udf_ D02UDF
#else
#define D02UDF d02udf_
#endif
extern void NAG_CALL D02UDF(
  CONST Integer REFPTR n,
  CONST double f[] /* 1 dimension */,
  double fd[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02uef_ D02UEF
#else
#define D02UEF d02uef_
#endif
extern void NAG_CALL D02UEF(
  CONST Integer REFPTR n,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST Integer REFPTR m,
  CONST double c[] /* 1 dimension */,
  double bmat[] /* 2 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double bvec[] /* 1 dimension */,
  double f[] /* 1 dimension */,
  double uc[] /* 2 dimension */,
  double REFPTR resid,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02uwf_ D02UWF
#else
#define D02UWF d02uwf_
#endif
extern void NAG_CALL D02UWF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nip,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  double xip[] /* 1 dimension */,
  double fip[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02uyf_ D02UYF
#else
#define D02UYF d02uyf_
#endif
extern void NAG_CALL D02UYF(
  CONST Integer REFPTR n,
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02uzf_ D02UZF
#else
#define D02UZF d02uzf_
#endif
extern void NAG_CALL D02UZF(
  CONST Integer REFPTR k,
  CONST double REFPTR x,
  double REFPTR t,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02xjf_ D02XJF
#else
#define D02XJF d02xjf_
#endif
extern void NAG_CALL D02XJF(
  CONST double REFPTR xsol,
  double sol[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double ysav[] /* 2 dimension */,
  CONST Integer REFPTR ldysav,
  CONST Integer REFPTR sdysav,
  CONST Integer REFPTR neq,
  CONST double REFPTR x,
  CONST Integer REFPTR nqu,
  CONST double REFPTR hu,
  CONST double REFPTR h,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02xkf_ D02XKF
#else
#define D02XKF d02xkf_
#endif
extern void NAG_CALL D02XKF(
  CONST double REFPTR xsol,
  double sol[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double ysav[] /* 2 dimension */,
  CONST Integer REFPTR ldysav,
  CONST Integer REFPTR sdysav,
  CONST double acor[] /* 1 dimension */,
  CONST Integer REFPTR neq,
  CONST double REFPTR x,
  CONST Integer REFPTR nqu,
  CONST double REFPTR hu,
  CONST double REFPTR h,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d02zaf_ D02ZAF
#else
#define D02ZAF d02zaf_
#endif
extern double NAG_CALL D02ZAF(
  CONST Integer REFPTR neq,
  CONST double v[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03eaf_ D03EAF
#else
#define D03EAF d03eaf_
#endif
extern void NAG_CALL D03EAF(
  CONST logical REFPTR stage1,
  CONST logical REFPTR ext,
  CONST logical REFPTR dorm,
  CONST Integer REFPTR n,
  CONST double REFPTR p,
  CONST double REFPTR q,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR n1p1,
  double phi[] /* 1 dimension */,
  double phid[] /* 1 dimension */,
  double REFPTR alpha,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  CONST Integer REFPTR np4,
  Integer icint[] /* 1 dimension */,
  CONST Integer REFPTR np1,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03ebf_ D03EBF
#else
#define D03EBF d03ebf_
#endif
extern void NAG_CALL D03EBF(
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR lda,
  CONST double a[] /* 2 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST double c[] /* 2 dimension */,
  CONST double d[] /* 2 dimension */,
  CONST double e[] /* 2 dimension */,
  CONST double q[] /* 2 dimension */,
  double t[] /* 2 dimension */,
  CONST double REFPTR aparam,
  CONST Integer REFPTR itmax,
  Integer REFPTR itcoun,
  Integer REFPTR itused,
  CONST Integer REFPTR ndir,
  CONST Integer REFPTR ixn,
  CONST Integer REFPTR iyn,
  CONST double REFPTR conres,
  CONST double REFPTR conchn,
  double resids[] /* 1 dimension */,
  double chngs[] /* 1 dimension */,
  double wrksp1[] /* 2 dimension */,
  double wrksp2[] /* 2 dimension */,
  double wrksp3[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03ecf_ D03ECF
#else
#define D03ECF d03ecf_
#endif
extern void NAG_CALL D03ECF(
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR n3,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR sda,
  CONST double a[] /* 3 dimension */,
  CONST double b[] /* 3 dimension */,
  CONST double c[] /* 3 dimension */,
  CONST double d[] /* 3 dimension */,
  CONST double e[] /* 3 dimension */,
  CONST double f[] /* 3 dimension */,
  CONST double g[] /* 3 dimension */,
  CONST double q[] /* 3 dimension */,
  double t[] /* 3 dimension */,
  CONST double REFPTR aparam,
  CONST Integer REFPTR itmax,
  Integer REFPTR itcoun,
  Integer REFPTR itused,
  CONST Integer REFPTR ndir,
  CONST Integer REFPTR ixn,
  CONST Integer REFPTR iyn,
  CONST Integer REFPTR izn,
  CONST double REFPTR conres,
  CONST double REFPTR conchn,
  double resids[] /* 1 dimension */,
  double chngs[] /* 1 dimension */,
  double wrksp1[] /* 3 dimension */,
  double wrksp2[] /* 3 dimension */,
  double wrksp3[] /* 3 dimension */,
  double wrksp4[] /* 3 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03edf_ D03EDF
#else
#define D03EDF d03edf_
#endif
extern void NAG_CALL D03EDF(
  CONST Integer REFPTR ngx,
  CONST Integer REFPTR ngy,
  CONST Integer REFPTR lda,
  double a[] /* 2 dimension */,
  double rhs[] /* 1 dimension */,
  double ub[] /* 1 dimension */,
  CONST Integer REFPTR maxit,
  CONST double REFPTR acc,
  double us[] /* 1 dimension */,
  double u[] /* 1 dimension */,
  CONST Integer REFPTR iout,
  Integer REFPTR numit,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03eef_(xmin, xmax, ymin, ymax, pdef, bndy, ngx, ngy, lda, a, rhs, scheme, ifail, length_scheme)  \
D03EEF(xmin, xmax, ymin, ymax, pdef, bndy, ngx, ngy, lda, a, rhs, scheme, length_scheme, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03eef_ D03EEF
#else
#define D03EEF d03eef_
#endif
extern void NAG_CALL D03EEF(
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double REFPTR ymin,
  CONST double REFPTR ymax,
  void (NAG_CALL *pdef)(
                        CONST double REFPTR ,
                        CONST double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ),
  void (NAG_CALL *bndy)(
                        CONST double REFPTR ,
                        CONST double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        double REFPTR ,
                        CONST Integer REFPTR ),
  CONST Integer REFPTR ngx,
  CONST Integer REFPTR ngy,
  CONST Integer REFPTR lda,
  double a[] /* 2 dimension */,
  double rhs[] /* 1 dimension */,
  CONST char * scheme
#ifdef USE_STDCALL
,  CONST Charlen length_scheme
#endif
,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_scheme
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03faf_ D03FAF
#else
#define D03FAF d03faf_
#endif
extern void NAG_CALL D03FAF(
  CONST double REFPTR xs,
  CONST double REFPTR xf,
  CONST Integer REFPTR l,
  CONST Integer REFPTR lbdcnd,
  CONST double bdxs[] /* 2 dimension */,
  CONST double bdxf[] /* 2 dimension */,
  CONST double REFPTR ys,
  CONST double REFPTR yf,
  CONST Integer REFPTR m,
  CONST Integer REFPTR mbdcnd,
  CONST double bdys[] /* 2 dimension */,
  CONST double bdyf[] /* 2 dimension */,
  CONST double REFPTR zs,
  CONST double REFPTR zf,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nbdcnd,
  CONST double bdzs[] /* 2 dimension */,
  CONST double bdzf[] /* 2 dimension */,
  CONST double REFPTR lambda,
  CONST Integer REFPTR ldf,
  CONST Integer REFPTR ldf2,
  double f[] /* 3 dimension */,
  double REFPTR pertrb,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03maf_ D03MAF
#else
#define D03MAF d03maf_
#endif
extern void NAG_CALL D03MAF(
  CONST double REFPTR h,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nb,
  Integer REFPTR npts,
  double places[] /* 2 dimension */,
  Integer indx[] /* 2 dimension */,
  CONST Integer REFPTR sdindx,
  Integer (NAG_CALL *isin)(
                           CONST double REFPTR ,
                           CONST double REFPTR ),
  double dist[] /* 2 dimension */,
  CONST Integer REFPTR sddist,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03ncf_(kopt, x, mesh, ns, s, nt, t, tdpar, r, q, sigma, alpha, ntkeep, f, theta, delta, gamma, lambda, rho, ldf, work, iwork, ifail, length_mesh)  \
D03NCF(kopt, x, mesh, length_mesh, ns, s, nt, t, tdpar, r, q, sigma, alpha, ntkeep, f, theta, delta, gamma, lambda, rho, ldf, work, iwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03ncf_ D03NCF
#else
#define D03NCF d03ncf_
#endif
extern void NAG_CALL D03NCF(
  CONST Integer REFPTR kopt,
  CONST double REFPTR x,
  CONST char * mesh
#ifdef USE_STDCALL
,  CONST Charlen length_mesh
#endif
,
  CONST Integer REFPTR ns,
  double s[] /* 1 dimension */,
  CONST Integer REFPTR nt,
  double t[] /* 1 dimension */,
  CONST logical tdpar[] /* 1 dimension */,
  CONST double r[] /* 1 dimension */,
  CONST double q[] /* 1 dimension */,
  CONST double sigma[] /* 1 dimension */,
  CONST double REFPTR alpha,
  CONST Integer REFPTR ntkeep,
  double f[] /* 2 dimension */,
  double theta[] /* 2 dimension */,
  double delta[] /* 2 dimension */,
  double gamma[] /* 2 dimension */,
  double lambda[] /* 2 dimension */,
  double rho[] /* 2 dimension */,
  CONST Integer REFPTR ldf,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_mesh
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03ndf_ D03NDF
#else
#define D03NDF d03ndf_
#endif
extern void NAG_CALL D03NDF(
  CONST Integer REFPTR kopt,
  CONST double REFPTR x,
  CONST double REFPTR s,
  CONST double REFPTR t,
  CONST double REFPTR tmat,
  CONST logical tdpar[] /* 1 dimension */,
  CONST double r[] /* 1 dimension */,
  CONST double q[] /* 1 dimension */,
  CONST double sigma[] /* 1 dimension */,
  double REFPTR f,
  double REFPTR theta,
  double REFPTR delta,
  double REFPTR gamma,
  double REFPTR lambda,
  double REFPTR rho,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03nef_ D03NEF
#else
#define D03NEF d03nef_
#endif
extern void NAG_CALL D03NEF(
  CONST double REFPTR t0,
  CONST double REFPTR tmat,
  CONST Integer REFPTR ntd,
  CONST double td[] /* 1 dimension */,
  CONST double phid[] /* 1 dimension */,
  double phiav[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pca_(npde, m, ts, tout, pdedef, bndary, u, npts, x, acc, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, lwsav, iwsav, rwsav, ifail, length_cwsav)  \
D03PCA(npde, m, ts, tout, pdedef, bndary, u, npts, x, acc, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pca_ D03PCA
#else
#define D03PCA d03pca_
#endif
extern void NAG_CALL D03PCA(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST double REFPTR acc,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cwsav
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pcf_ D03PCF
#else
#define D03PCF d03pcf_
#endif
extern void NAG_CALL D03PCF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST double REFPTR acc,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d53pck_ D53PCK
#else
#define D53PCK d53pck_
#endif
extern void NAG_CALL D53PCK(
  CONST Integer REFPTR npde,
  CONST double REFPTR t,
  CONST Integer REFPTR ncode,
  CONST double v[] /* 1 dimension */,
  CONST double vdot[] /* 1 dimension */,
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST double ucp[] /* 2 dimension */,
  CONST double ucpx[] /* 2 dimension */,
  CONST double rcp[] /* 2 dimension */,
  CONST double ucpt[] /* 2 dimension */,
  CONST double ucptx[] /* 2 dimension */,
  double f[] /* 1 dimension */,
  Integer REFPTR ires,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pck_ D03PCK
#else
#define D03PCK d03pck_
#endif
extern void NAG_CALL D03PCK(
  CONST Integer REFPTR npde,
  CONST double REFPTR t,
  CONST Integer REFPTR ncode,
  CONST double v[] /* 1 dimension */,
  CONST double vdot[] /* 1 dimension */,
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST double ucp[] /* 2 dimension */,
  CONST double ucpx[] /* 2 dimension */,
  CONST double rcp[] /* 2 dimension */,
  CONST double ucpt[] /* 2 dimension */,
  CONST double ucptx[] /* 2 dimension */,
  double f[] /* 1 dimension */,
  Integer REFPTR ires
);
#if defined (_WIN32) || defined (_WIN64)
#define d53pcl_ D53PCL
#else
#define D53PCL d53pcl_
#endif
extern void NAG_CALL D53PCL(
  CONST double REFPTR t,
  CONST Integer REFPTR npts,
  CONST Integer REFPTR npde,
  CONST double x[] /* 1 dimension */,
  CONST double u[] /* 2 dimension */,
  CONST double r[] /* 2 dimension */,
  double fmon[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pcl_ D03PCL
#else
#define D03PCL d03pcl_
#endif
extern void NAG_CALL D03PCL(
  CONST double REFPTR t,
  CONST Integer REFPTR npts,
  CONST Integer REFPTR npde,
  CONST double x[] /* 1 dimension */,
  CONST double u[] /* 2 dimension */,
  CONST double r[] /* 2 dimension */,
  double fmon[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pda_(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, uinit, acc, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, lwsav, iwsav, rwsav, ifail, length_cwsav)  \
D03PDA(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, uinit, acc, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pda_ D03PDA
#else
#define D03PDA d03pda_
#endif
extern void NAG_CALL D03PDA(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR nbkpts,
  CONST double xbkpts[] /* 1 dimension */,
  CONST Integer REFPTR npoly,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  void (NAG_CALL *uinit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double[],
                         Integer[],
                         double[]),
  CONST double REFPTR acc,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cwsav
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pdf_ D03PDF
#else
#define D03PDF d03pdf_
#endif
extern void NAG_CALL D03PDF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR nbkpts,
  CONST double xbkpts[] /* 1 dimension */,
  CONST Integer REFPTR npoly,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  void (NAG_CALL *uinit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double[]),
  CONST double REFPTR acc,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pef_ D03PEF
#else
#define D03PEF d03pef_
#endif
extern void NAG_CALL D03PEF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR nleft,
  CONST double REFPTR acc,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pek_ D03PEK
#else
#define D03PEK d03pek_
#endif
extern void NAG_CALL D03PEK(
  CONST Integer REFPTR npde,
  CONST double REFPTR t,
  CONST Integer REFPTR ncode,
  CONST double v[] /* 1 dimension */,
  CONST double vdot[] /* 1 dimension */,
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST double ucp[] /* 2 dimension */,
  CONST double ucpx[] /* 2 dimension */,
  CONST double ucpt[] /* 2 dimension */,
  double r[] /* 1 dimension */,
  Integer REFPTR ires
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pel_ D03PEL
#else
#define D03PEL d03pel_
#endif
extern void NAG_CALL D03PEL(
  CONST double REFPTR t,
  CONST Integer REFPTR npts,
  CONST Integer REFPTR npde,
  CONST double x[] /* 1 dimension */,
  CONST double u[] /* 2 dimension */,
  double fmon[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pff_ D03PFF
#else
#define D03PFF d03pff_
#endif
extern void NAG_CALL D03PFF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *numflx)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          Integer REFPTR ),
  double u[] /* 2 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST double acc[] /* 1 dimension */,
  CONST double REFPTR tsmax,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pfp_ D03PFP
#else
#define D03PFP d03pfp_
#endif
extern void NAG_CALL D03PFP(
  CONST Integer REFPTR npde,
  CONST double REFPTR t,
  CONST double REFPTR x,
  CONST double u[] /* 1 dimension */,
  CONST double ux[] /* 1 dimension */,
  double p[] /* 2 dimension */,
  double c[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  Integer REFPTR ires
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pha_(npde, m, ts, tout, pdedef, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, lwsav, iwsav, rwsav, ifail, length_norm, length_laopt, length_cwsav)  \
D03PHA(npde, m, ts, tout, pdedef, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pha_ D03PHA
#else
#define D03PHA d03pha_
#endif
extern void NAG_CALL D03PHA(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt,
 CONST Charlen length_cwsav
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03phf_(npde, m, ts, tout, pdedef, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PHF(npde, m, ts, tout, pdedef, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03phf_ D03PHF
#else
#define D03PHF d03phf_
#endif
extern void NAG_CALL D03PHF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pja_(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, ncode, odedef, nxi, xi, neqn, uvinit, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, lwsav, iwsav, rwsav, ifail, length_norm, length_laopt, length_cwsav)  \
D03PJA(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, ncode, odedef, nxi, xi, neqn, uvinit, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pja_ D03PJA
#else
#define D03PJA d03pja_
#endif
extern void NAG_CALL D03PJA(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR nbkpts,
  CONST double xbkpts[] /* 1 dimension */,
  CONST Integer REFPTR npoly,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[],
                          Integer[],
                          double[]),
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt,
 CONST Charlen length_cwsav
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pjf_(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, ncode, odedef, nxi, xi, neqn, uvinit, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PJF(npde, m, ts, tout, pdedef, bndary, u, nbkpts, xbkpts, npoly, npts, x, ncode, odedef, nxi, xi, neqn, uvinit, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pjf_ D03PJF
#else
#define D03PJF d03pjf_
#endif
extern void NAG_CALL D03PJF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR nbkpts,
  CONST double xbkpts[] /* 1 dimension */,
  CONST Integer REFPTR npoly,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[]),
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pkf_(npde, ts, tout, pdedef, bndary, u, npts, x, nleft, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PKF(npde, ts, tout, pdedef, bndary, u, npts, x, nleft, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pkf_ D03PKF
#else
#define D03PKF d03pkf_
#endif
extern void NAG_CALL D03PKF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR nleft,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03plf_(npde, ts, tout, pdedef, numflx, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PLF(npde, ts, tout, pdedef, numflx, bndary, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03plf_ D03PLF
#else
#define D03PLF d03plf_
#endif
extern void NAG_CALL D03PLF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *numflx)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          Integer REFPTR ),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03plp_ D03PLP
#else
#define D03PLP d03plp_
#endif
extern void NAG_CALL D03PLP(
  CONST Integer REFPTR npde,
  CONST double REFPTR t,
  CONST double REFPTR x,
  CONST double u[] /* 1 dimension */,
  CONST double ux[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  CONST double v[] /* 1 dimension */,
  CONST double vdot[] /* 1 dimension */,
  double p[] /* 2 dimension */,
  double c[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  Integer REFPTR ires
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03ppa_(npde, m, ts, tout, pdedef, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, lwsav, iwsav, rwsav, ifail, length_norm, length_laopt, length_cwsav)  \
D03PPA(npde, m, ts, tout, pdedef, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, iuser, ruser, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03ppa_ D03PPA
#else
#define D03PPA d03ppa_
#endif
extern void NAG_CALL D03PPA(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[],
                          Integer[],
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  CONST logical REFPTR remesh,
  CONST Integer REFPTR nxfix,
  CONST double xfix[] /* 1 dimension */,
  CONST Integer REFPTR nrmesh,
  CONST double REFPTR dxmesh,
  CONST double REFPTR trmesh,
  CONST Integer REFPTR ipminf,
  CONST double REFPTR xratio,
  CONST double REFPTR con,
  void (NAG_CALL *monitf)(
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer[],
                          double[]),
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt,
 CONST Charlen length_cwsav
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03ppf_(npde, m, ts, tout, pdedef, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PPF(npde, m, ts, tout, pdedef, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03ppf_ D03PPF
#else
#define D03PPF d03ppf_
#endif
extern void NAG_CALL D03PPF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  CONST logical REFPTR remesh,
  CONST Integer REFPTR nxfix,
  CONST double xfix[] /* 1 dimension */,
  CONST Integer REFPTR nrmesh,
  CONST double REFPTR dxmesh,
  CONST double REFPTR trmesh,
  CONST Integer REFPTR ipminf,
  CONST double REFPTR xratio,
  CONST double REFPTR con,
  void (NAG_CALL *monitf)(
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[]),
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03prf_(npde, ts, tout, pdedef, bndary, uvinit, u, npts, x, nleft, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PRF(npde, ts, tout, pdedef, bndary, uvinit, u, npts, x, nleft, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03prf_ D03PRF
#else
#define D03PRF d03prf_
#endif
extern void NAG_CALL D03PRF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR nleft,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  CONST logical REFPTR remesh,
  CONST Integer REFPTR nxfix,
  CONST double xfix[] /* 1 dimension */,
  CONST Integer REFPTR nrmesh,
  CONST double REFPTR dxmesh,
  CONST double REFPTR trmesh,
  CONST Integer REFPTR ipminf,
  CONST double REFPTR xratio,
  CONST double REFPTR con,
  void (NAG_CALL *monitf)(
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[]),
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03psf_(npde, ts, tout, pdedef, numflx, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail, length_norm, length_laopt)  \
D03PSF(npde, ts, tout, pdedef, numflx, bndary, uvinit, u, npts, x, ncode, odedef, nxi, xi, neqn, rtol, atol, itol, norm, length_norm, laopt, length_laopt, algopt, remesh, nxfix, xfix, nrmesh, dxmesh, trmesh, ipminf, xratio, con, monitf, rsave, lrsave, isave, lisave, itask, itrace, ind, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03psf_ D03PSF
#else
#define D03PSF d03psf_
#endif
extern void NAG_CALL D03PSF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          double[],
                          double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *numflx)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          double[],
                          Integer REFPTR ),
  void (NAG_CALL *uvinit)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          double[]),
  double u[] /* 1 dimension */,
  CONST Integer REFPTR npts,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR ncode,
  void (NAG_CALL *odedef)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR nxi,
  CONST double xi[] /* 1 dimension */,
  CONST Integer REFPTR neqn,
  CONST double rtol[] /* 1 dimension */,
  CONST double atol[] /* 1 dimension */,
  CONST Integer REFPTR itol,
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * laopt
#ifdef USE_STDCALL
,  CONST Charlen length_laopt
#endif
,
  CONST double algopt[] /* 1 dimension */,
  CONST logical REFPTR remesh,
  CONST Integer REFPTR nxfix,
  CONST double xfix[] /* 1 dimension */,
  CONST Integer REFPTR nrmesh,
  CONST double REFPTR dxmesh,
  CONST double REFPTR trmesh,
  CONST Integer REFPTR ipminf,
  CONST double REFPTR xratio,
  CONST double REFPTR con,
  void (NAG_CALL *monitf)(
                          CONST double REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[]),
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer isave[] /* 1 dimension */,
  CONST Integer REFPTR lisave,
  CONST Integer REFPTR itask,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_laopt
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03puf_ D03PUF
#else
#define D03PUF d03puf_
#endif
extern void NAG_CALL D03PUF(
  CONST double uleft[] /* 1 dimension */,
  CONST double uright[] /* 1 dimension */,
  CONST double REFPTR gamma,
  double flux[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03pvf_(uleft, uright, gamma, path, flux, ifail, length_path)  \
D03PVF(uleft, uright, gamma, path, length_path, flux, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03pvf_ D03PVF
#else
#define D03PVF d03pvf_
#endif
extern void NAG_CALL D03PVF(
  CONST double uleft[] /* 1 dimension */,
  CONST double uright[] /* 1 dimension */,
  CONST double REFPTR gamma,
  CONST char * path
#ifdef USE_STDCALL
,  CONST Charlen length_path
#endif
,
  double flux[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_path
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pwf_ D03PWF
#else
#define D03PWF d03pwf_
#endif
extern void NAG_CALL D03PWF(
  CONST double uleft[] /* 1 dimension */,
  CONST double uright[] /* 1 dimension */,
  CONST double REFPTR gamma,
  double flux[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pxf_ D03PXF
#else
#define D03PXF d03pxf_
#endif
extern void NAG_CALL D03PXF(
  CONST double uleft[] /* 1 dimension */,
  CONST double uright[] /* 1 dimension */,
  CONST double REFPTR gamma,
  CONST double REFPTR tol,
  CONST Integer REFPTR niter,
  double flux[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pyf_ D03PYF
#else
#define D03PYF d03pyf_
#endif
extern void NAG_CALL D03PYF(
  CONST Integer REFPTR npde,
  CONST double u[] /* 2 dimension */,
  CONST Integer REFPTR nbkpts,
  CONST double xbkpts[] /* 1 dimension */,
  CONST Integer REFPTR npoly,
  CONST Integer REFPTR npts,
  CONST double xp[] /* 1 dimension */,
  CONST Integer REFPTR intpts,
  CONST Integer REFPTR itype,
  double up[] /* 3 dimension */,
  double rsave[] /* 1 dimension */,
  CONST Integer REFPTR lrsave,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03pzf_ D03PZF
#else
#define D03PZF d03pzf_
#endif
extern void NAG_CALL D03PZF(
  CONST Integer REFPTR npde,
  CONST Integer REFPTR m,
  CONST double u[] /* 2 dimension */,
  CONST Integer REFPTR npts,
  CONST double x[] /* 1 dimension */,
  CONST double xp[] /* 1 dimension */,
  CONST Integer REFPTR intpts,
  CONST Integer REFPTR itype,
  double up[] /* 3 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03raf_ D03RAF
#else
#define D03RAF d03raf_
#endif
extern void NAG_CALL D03RAF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  double dt[] /* 1 dimension */,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double REFPTR ymin,
  CONST double REFPTR ymax,
  CONST Integer REFPTR nx,
  CONST Integer REFPTR ny,
  CONST double REFPTR tols,
  CONST double REFPTR tolt,
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          double[]),
  void (NAG_CALL *pdeiv)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[]),
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST logical REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          CONST double[],
                          CONST Integer[],
                          CONST double[],
                          Integer REFPTR ),
  CONST Integer opti[] /* 1 dimension */,
  CONST double optr[] /* 2 dimension */,
  double rwk[] /* 1 dimension */,
  CONST Integer REFPTR lenrwk,
  Integer iwk[] /* 1 dimension */,
  CONST Integer REFPTR leniwk,
  logical lwk[] /* 1 dimension */,
  CONST Integer REFPTR lenlwk,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03rbf_ D03RBF
#else
#define D03RBF d03rbf_
#endif
extern void NAG_CALL D03RBF(
  CONST Integer REFPTR npde,
  double REFPTR ts,
  CONST double REFPTR tout,
  double dt[] /* 1 dimension */,
  CONST double REFPTR tols,
  CONST double REFPTR tolt,
  void (NAG_CALL *inidom)(
                          CONST Integer REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          double REFPTR ,
                          Integer REFPTR ,
                          Integer REFPTR ,
                          Integer REFPTR ,
                          Integer REFPTR ,
                          Integer REFPTR ,
                          Integer REFPTR ,
                          Integer[],
                          Integer[],
                          Integer[],
                          Integer[],
                          Integer[],
                          Integer[],
                          Integer REFPTR ),
  void (NAG_CALL *pdedef)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          double[]),
  void (NAG_CALL *bndary)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST Integer[],
                          CONST Integer[],
                          double[]),
  void (NAG_CALL *pdeiv)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[]),
  void (NAG_CALL *monitr)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST logical REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          CONST Integer[],
                          CONST Integer[],
                          CONST Integer[],
                          CONST double[],
                          Integer REFPTR ),
  CONST Integer opti[] /* 1 dimension */,
  CONST double optr[] /* 2 dimension */,
  double rwk[] /* 1 dimension */,
  CONST Integer REFPTR lenrwk,
  Integer iwk[] /* 1 dimension */,
  CONST Integer REFPTR leniwk,
  logical lwk[] /* 1 dimension */,
  CONST Integer REFPTR lenlwk,
  CONST Integer REFPTR itrace,
  Integer REFPTR ind,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d03ryf_(nx, ny, npts, nrows, nbnds, nbpts, lrow, irow, icol, llbnd, ilbnd, lbnd, iwk, leniwk, pgrid, ifail, length_pgrid)  \
D03RYF(nx, ny, npts, nrows, nbnds, nbpts, lrow, irow, icol, llbnd, ilbnd, lbnd, iwk, leniwk, pgrid, length_pgrid, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d03ryf_ D03RYF
#else
#define D03RYF d03ryf_
#endif
extern void NAG_CALL D03RYF(
  CONST Integer REFPTR nx,
  CONST Integer REFPTR ny,
  CONST Integer REFPTR npts,
  CONST Integer REFPTR nrows,
  CONST Integer REFPTR nbnds,
  CONST Integer REFPTR nbpts,
  CONST Integer lrow[] /* 1 dimension */,
  CONST Integer irow[] /* 1 dimension */,
  CONST Integer icol[] /* 1 dimension */,
  CONST Integer llbnd[] /* 1 dimension */,
  CONST Integer ilbnd[] /* 1 dimension */,
  CONST Integer lbnd[] /* 1 dimension */,
  Integer iwk[] /* 1 dimension */,
  CONST Integer REFPTR leniwk,
  char pgrid[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_pgrid
#endif
,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_pgrid
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d03rzf_ D03RZF
#else
#define D03RZF d03rzf_
#endif
extern void NAG_CALL D03RZF(
  CONST Integer REFPTR level,
  CONST Integer REFPTR nlev,
  CONST double REFPTR xmin,
  CONST double REFPTR ymin,
  CONST double REFPTR dxb,
  CONST double REFPTR dyb,
  CONST Integer lgrid[] /* 1 dimension */,
  CONST Integer istruc[] /* 1 dimension */,
  Integer REFPTR npts,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR lenxy,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03uaf_ D03UAF
#else
#define D03UAF d03uaf_
#endif
extern void NAG_CALL D03UAF(
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR lda,
  CONST double a[] /* 2 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST double c[] /* 2 dimension */,
  CONST double d[] /* 2 dimension */,
  CONST double e[] /* 2 dimension */,
  CONST double REFPTR aparam,
  CONST Integer REFPTR it,
  double r[] /* 2 dimension */,
  double wrksp1[] /* 2 dimension */,
  double wrksp2[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d03ubf_ D03UBF
#else
#define D03UBF d03ubf_
#endif
extern void NAG_CALL D03UBF(
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR n3,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR sda,
  CONST double a[] /* 3 dimension */,
  CONST double b[] /* 3 dimension */,
  CONST double c[] /* 3 dimension */,
  CONST double d[] /* 3 dimension */,
  CONST double e[] /* 3 dimension */,
  CONST double f[] /* 3 dimension */,
  CONST double g[] /* 3 dimension */,
  CONST double REFPTR aparam,
  CONST Integer REFPTR it,
  double r[] /* 3 dimension */,
  double wrksp1[] /* 3 dimension */,
  double wrksp2[] /* 3 dimension */,
  double wrksp3[] /* 3 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d04aaf_ D04AAF
#else
#define D04AAF d04aaf_
#endif
extern void NAG_CALL D04AAF(
  CONST double REFPTR xval,
  CONST Integer REFPTR nder,
  CONST double REFPTR hbase,
  double der[] /* 1 dimension */,
  double erest[] /* 1 dimension */,
  double (NAG_CALL *fun)(
                         CONST double REFPTR ),
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d04baf_ D04BAF
#else
#define D04BAF d04baf_
#endif
extern void NAG_CALL D04BAF(
  CONST double xval[] /* 1 dimension */,
  CONST double fval[] /* 1 dimension */,
  double der[] /* 1 dimension */,
  double erest[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d04bbf_ D04BBF
#else
#define D04BBF d04bbf_
#endif
extern void NAG_CALL D04BBF(
  CONST double REFPTR x_0,
  CONST double REFPTR hbase,
  double xval[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d05aaf_ D05AAF
#else
#define D05AAF d05aaf_
#endif
extern void NAG_CALL D05AAF(
  CONST double REFPTR lambda,
  CONST double REFPTR a,
  CONST double REFPTR b,
  double (NAG_CALL *k1)(
                        CONST double REFPTR ,
                        CONST double REFPTR ),
  double (NAG_CALL *k2)(
                        CONST double REFPTR ,
                        CONST double REFPTR ),
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  double f[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ind,
  double w1[] /* 2 dimension */,
  double w2[] /* 2 dimension */,
  double wd[] /* 1 dimension */,
  CONST Integer REFPTR ldw1,
  CONST Integer REFPTR ldw2,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d05abf_ D05ABF
#else
#define D05ABF d05abf_
#endif
extern void NAG_CALL D05ABF(
  double (NAG_CALL *k)(
                       CONST double REFPTR ,
                       CONST double REFPTR ),
  double (NAG_CALL *g)(
                       CONST double REFPTR ),
  CONST double REFPTR lambda,
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST logical REFPTR odorev,
  CONST logical REFPTR ev,
  CONST Integer REFPTR n,
  double cm[] /* 2 dimension */,
  double f1[] /* 2 dimension */,
  double wk[] /* 2 dimension */,
  CONST Integer REFPTR ldcm,
  CONST Integer REFPTR nt2p1,
  double f[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d05baf_(ck, cg, cf, method, iorder, alim, tlim, yn, errest, nmesh, tol, thresh, work, lwk, ifail, length_method)  \
D05BAF(ck, cg, cf, method, length_method, iorder, alim, tlim, yn, errest, nmesh, tol, thresh, work, lwk, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d05baf_ D05BAF
#else
#define D05BAF d05baf_
#endif
extern void NAG_CALL D05BAF(
  double (NAG_CALL *ck)(
                        CONST double REFPTR ),
  double (NAG_CALL *cg)(
                        CONST double REFPTR ,
                        CONST double REFPTR ),
  double (NAG_CALL *cf)(
                        CONST double REFPTR ),
  CONST char * method
#ifdef USE_STDCALL
,  CONST Charlen length_method
#endif
,
  CONST Integer REFPTR iorder,
  CONST double REFPTR alim,
  CONST double REFPTR tlim,
  double yn[] /* 1 dimension */,
  double errest[] /* 1 dimension */,
  CONST Integer REFPTR nmesh,
  CONST double REFPTR tol,
  CONST double REFPTR thresh,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwk,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_method
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d05bdf_(ck, cf, cg, initwt, iorder, tlim, tolnl, nmesh, yn, work, lwk, nct, ifail, length_initwt)  \
D05BDF(ck, cf, cg, initwt, length_initwt, iorder, tlim, tolnl, nmesh, yn, work, lwk, nct, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d05bdf_ D05BDF
#else
#define D05BDF d05bdf_
#endif
extern void NAG_CALL D05BDF(
  double (NAG_CALL *ck)(
                        CONST double REFPTR ),
  double (NAG_CALL *cf)(
                        CONST double REFPTR ),
  double (NAG_CALL *cg)(
                        CONST double REFPTR ,
                        CONST double REFPTR ),
  CONST char * initwt
#ifdef USE_STDCALL
,  CONST Charlen length_initwt
#endif
,
  CONST Integer REFPTR iorder,
  CONST double REFPTR tlim,
  CONST double REFPTR tolnl,
  CONST Integer REFPTR nmesh,
  double yn[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwk,
  Integer nct[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_initwt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d05bef_(ck, cf, cg, initwt, iorder, tlim, tolnl, nmesh, yn, work, lwk, nct, ifail, length_initwt)  \
D05BEF(ck, cf, cg, initwt, length_initwt, iorder, tlim, tolnl, nmesh, yn, work, lwk, nct, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d05bef_ D05BEF
#else
#define D05BEF d05bef_
#endif
extern void NAG_CALL D05BEF(
  double (NAG_CALL *ck)(
                        CONST double REFPTR ),
  double (NAG_CALL *cf)(
                        CONST double REFPTR ),
  double (NAG_CALL *cg)(
                        CONST double REFPTR ,
                        CONST double REFPTR ),
  CONST char * initwt
#ifdef USE_STDCALL
,  CONST Charlen length_initwt
#endif
,
  CONST Integer REFPTR iorder,
  CONST double REFPTR tlim,
  CONST double REFPTR tolnl,
  CONST Integer REFPTR nmesh,
  double yn[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwk,
  Integer nct[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_initwt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
d05bwf_(method, iorder, omega, nomg, lensw, sw, ldsw, nwt, ifail, length_method)  \
D05BWF(method, length_method, iorder, omega, nomg, lensw, sw, ldsw, nwt, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define d05bwf_ D05BWF
#else
#define D05BWF d05bwf_
#endif
extern void NAG_CALL D05BWF(
  CONST char * method
#ifdef USE_STDCALL
,  CONST Charlen length_method
#endif
,
  CONST Integer REFPTR iorder,
  double omega[] /* 1 dimension */,
  CONST Integer REFPTR nomg,
  Integer REFPTR lensw,
  double sw[] /* 2 dimension */,
  CONST Integer REFPTR ldsw,
  CONST Integer REFPTR nwt,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_method
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define d05byf_ D05BYF
#else
#define D05BYF d05byf_
#endif
extern void NAG_CALL D05BYF(
  CONST Integer REFPTR iorder,
  CONST Integer REFPTR iq,
  CONST Integer REFPTR lenfw,
  double wt[] /* 1 dimension */,
  double sw[] /* 2 dimension */,
  CONST Integer REFPTR ldsw,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06aaf_ D06AAF
#else
#define D06AAF d06aaf_
#endif
extern void NAG_CALL D06AAF(
  CONST Integer REFPTR nvb,
  CONST Integer REFPTR nvmax,
  CONST Integer REFPTR nedge,
  CONST Integer edge[] /* 2 dimension */,
  Integer REFPTR nv,
  Integer REFPTR nelt,
  double coor[] /* 2 dimension */,
  Integer conn[] /* 2 dimension */,
  CONST double bspace[] /* 1 dimension */,
  CONST logical REFPTR smooth,
  CONST double REFPTR coef,
  CONST double REFPTR power,
  CONST Integer REFPTR itrace,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06abf_ D06ABF
#else
#define D06ABF d06abf_
#endif
extern void NAG_CALL D06ABF(
  CONST Integer REFPTR nvb,
  CONST Integer REFPTR nvint,
  CONST Integer REFPTR nvmax,
  CONST Integer REFPTR nedge,
  CONST Integer edge[] /* 2 dimension */,
  Integer REFPTR nv,
  Integer REFPTR nelt,
  double coor[] /* 2 dimension */,
  Integer conn[] /* 2 dimension */,
  CONST double weight[] /* 1 dimension */,
  CONST Integer REFPTR npropa,
  CONST Integer REFPTR itrace,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06acf_ D06ACF
#else
#define D06ACF d06acf_
#endif
extern void NAG_CALL D06ACF(
  CONST Integer REFPTR nvb,
  CONST Integer REFPTR nvint,
  CONST Integer REFPTR nvmax,
  CONST Integer REFPTR nedge,
  CONST Integer edge[] /* 2 dimension */,
  Integer REFPTR nv,
  Integer REFPTR nelt,
  double coor[] /* 2 dimension */,
  Integer conn[] /* 2 dimension */,
  CONST double weight[] /* 1 dimension */,
  CONST Integer REFPTR itrace,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06bad_ D06BAD
#else
#define D06BAD d06bad_
#endif
extern double NAG_CALL D06BAD(
  CONST Integer REFPTR i,
  CONST double REFPTR x,
  CONST double REFPTR y,
  double ruser[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define d06baf_ D06BAF
#else
#define D06BAF d06baf_
#endif
extern void NAG_CALL D06BAF(
  CONST Integer REFPTR nlines,
  CONST double coorch[] /* 2 dimension */,
  CONST Integer lined[] /* 2 dimension */,
  double (NAG_CALL *fbnd)(
                          CONST Integer REFPTR ,
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          double[],
                          Integer[]),
  CONST double crus[] /* 2 dimension */,
  CONST Integer REFPTR sdcrus,
  CONST double rate[] /* 1 dimension */,
  CONST Integer REFPTR ncomp,
  CONST Integer nlcomp[] /* 1 dimension */,
  CONST Integer lcomp[] /* 1 dimension */,
  CONST Integer REFPTR nvmax,
  CONST Integer REFPTR nedmx,
  Integer REFPTR nvb,
  double coor[] /* 2 dimension */,
  Integer REFPTR nedge,
  Integer edge[] /* 2 dimension */,
  CONST Integer REFPTR itrace,
  double ruser[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06caf_ D06CAF
#else
#define D06CAF d06caf_
#endif
extern void NAG_CALL D06CAF(
  CONST Integer REFPTR nv,
  CONST Integer REFPTR nelt,
  CONST Integer REFPTR nedge,
  double coor[] /* 2 dimension */,
  CONST Integer edge[] /* 2 dimension */,
  CONST Integer conn[] /* 2 dimension */,
  CONST Integer REFPTR nvfix,
  CONST Integer numfix[] /* 1 dimension */,
  CONST Integer REFPTR itrace,
  CONST Integer REFPTR nqint,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06cbf_ D06CBF
#else
#define D06CBF d06cbf_
#endif
extern void NAG_CALL D06CBF(
  CONST Integer REFPTR nv,
  CONST Integer REFPTR nelt,
  CONST Integer REFPTR nnzmax,
  CONST Integer conn[] /* 2 dimension */,
  Integer REFPTR nnz,
  Integer irow[] /* 1 dimension */,
  Integer icol[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06ccf_ D06CCF
#else
#define D06CCF d06ccf_
#endif
extern void NAG_CALL D06CCF(
  CONST Integer REFPTR nv,
  CONST Integer REFPTR nelt,
  CONST Integer REFPTR nedge,
  CONST Integer REFPTR nnzmax,
  Integer REFPTR nnz,
  double coor[] /* 2 dimension */,
  Integer edge[] /* 2 dimension */,
  Integer conn[] /* 2 dimension */,
  Integer irow[] /* 1 dimension */,
  Integer icol[] /* 1 dimension */,
  CONST Integer REFPTR itrace,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06daf_ D06DAF
#else
#define D06DAF d06daf_
#endif
extern void NAG_CALL D06DAF(
  CONST Integer REFPTR nv,
  CONST Integer REFPTR nedge,
  CONST Integer REFPTR nelt,
  CONST Integer REFPTR ntrans,
  CONST Integer itype[] /* 1 dimension */,
  CONST double trans[] /* 2 dimension */,
  double coori[] /* 2 dimension */,
  Integer edgei[] /* 2 dimension */,
  Integer conni[] /* 2 dimension */,
  double cooro[] /* 2 dimension */,
  Integer edgeo[] /* 2 dimension */,
  Integer conno[] /* 2 dimension */,
  CONST Integer REFPTR itrace,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define d06dbf_ D06DBF
#else
#define D06DBF d06dbf_
#endif
extern void NAG_CALL D06DBF(
  CONST double REFPTR eps,
  CONST Integer REFPTR nv1,
  CONST Integer REFPTR nelt1,
  CONST Integer REFPTR nedge1,
  CONST double coor1[] /* 2 dimension */,
  CONST Integer edge1[] /* 2 dimension */,
  CONST Integer conn1[] /* 2 dimension */,
  CONST Integer reft1[] /* 1 dimension */,
  CONST Integer REFPTR nv2,
  CONST Integer REFPTR nelt2,
  CONST Integer REFPTR nedge2,
  CONST double coor2[] /* 2 dimension */,
  CONST Integer edge2[] /* 2 dimension */,
  CONST Integer conn2[] /* 2 dimension */,
  CONST Integer reft2[] /* 1 dimension */,
  Integer REFPTR nv3,
  Integer REFPTR nelt3,
  Integer REFPTR nedge3,
  double coor3[] /* 2 dimension */,
  Integer edge3[] /* 2 dimension */,
  Integer conn3[] /* 2 dimension */,
  Integer reft3[] /* 1 dimension */,
  CONST Integer REFPTR itrace,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01aaf_ E01AAF
#else
#define E01AAF e01aaf_
#endif
extern void NAG_CALL E01AAF(
  double a[] /* 1 dimension */,
  double b[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  CONST Integer REFPTR n,
  CONST double REFPTR x
);
#if defined (_WIN32) || defined (_WIN64)
#define e01abf_ E01ABF
#else
#define E01ABF e01abf_
#endif
extern void NAG_CALL E01ABF(
  CONST Integer REFPTR n,
  CONST double REFPTR p,
  double a[] /* 1 dimension */,
  double g[] /* 1 dimension */,
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01aef_ E01AEF
#else
#define E01AEF e01aef_
#endif
extern void NAG_CALL E01AEF(
  CONST Integer REFPTR m,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST Integer ip[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR itmin,
  CONST Integer REFPTR itmax,
  double a[] /* 1 dimension */,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  CONST Integer REFPTR liwrk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01baf_ E01BAF
#else
#define E01BAF e01baf_
#endif
extern void NAG_CALL E01BAF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  double lamda[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR lck,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01bef_ E01BEF
#else
#define E01BEF e01bef_
#endif
extern void NAG_CALL E01BEF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01bff_ E01BFF
#else
#define E01BFF e01bff_
#endif
extern void NAG_CALL E01BFF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double px[] /* 1 dimension */,
  double pf[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01bgf_ E01BGF
#else
#define E01BGF e01bgf_
#endif
extern void NAG_CALL E01BGF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double px[] /* 1 dimension */,
  double pf[] /* 1 dimension */,
  double pd[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01bhf_ E01BHF
#else
#define E01BHF e01bhf_
#endif
extern void NAG_CALL E01BHF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double REFPTR a,
  CONST double REFPTR b,
  double REFPTR pint,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01daf_ E01DAF
#else
#define E01DAF e01daf_
#endif
extern void NAG_CALL E01DAF(
  CONST Integer REFPTR mx,
  CONST Integer REFPTR my,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  Integer REFPTR px,
  Integer REFPTR py,
  double lamda[] /* 1 dimension */,
  double mu[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double wrk[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01raf_ E01RAF
#else
#define E01RAF e01raf_
#endif
extern void NAG_CALL E01RAF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  Integer REFPTR m,
  double a[] /* 1 dimension */,
  double u[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01rbf_ E01RBF
#else
#define E01RBF e01rbf_
#endif
extern void NAG_CALL E01RBF(
  CONST Integer REFPTR m,
  CONST double a[] /* 1 dimension */,
  CONST double u[] /* 1 dimension */,
  CONST double REFPTR x,
  double REFPTR f,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01saf_ E01SAF
#else
#define E01SAF e01saf_
#endif
extern void NAG_CALL E01SAF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  Integer triang[] /* 1 dimension */,
  double grads[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01sbf_ E01SBF
#else
#define E01SBF e01sbf_
#endif
extern void NAG_CALL E01SBF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer triang[] /* 1 dimension */,
  CONST double grads[] /* 2 dimension */,
  CONST double REFPTR px,
  CONST double REFPTR py,
  double REFPTR pf,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01sgf_ E01SGF
#else
#define E01SGF e01sgf_
#endif
extern void NAG_CALL E01SGF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer REFPTR nw,
  CONST Integer REFPTR nq,
  Integer iq[] /* 1 dimension */,
  CONST Integer REFPTR liq,
  double rq[] /* 1 dimension */,
  CONST Integer REFPTR lrq,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01shf_ E01SHF
#else
#define E01SHF e01shf_
#endif
extern void NAG_CALL E01SHF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer iq[] /* 1 dimension */,
  CONST Integer REFPTR liq,
  CONST double rq[] /* 1 dimension */,
  CONST Integer REFPTR lrq,
  CONST Integer REFPTR n,
  CONST double u[] /* 1 dimension */,
  CONST double v[] /* 1 dimension */,
  double q[] /* 1 dimension */,
  double qx[] /* 1 dimension */,
  double qy[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01tgf_ E01TGF
#else
#define E01TGF e01tgf_
#endif
extern void NAG_CALL E01TGF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double z[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer REFPTR nw,
  CONST Integer REFPTR nq,
  Integer iq[] /* 1 dimension */,
  CONST Integer REFPTR liq,
  double rq[] /* 1 dimension */,
  CONST Integer REFPTR lrq,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01thf_ E01THF
#else
#define E01THF e01thf_
#endif
extern void NAG_CALL E01THF(
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double z[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer iq[] /* 1 dimension */,
  CONST Integer REFPTR liq,
  CONST double rq[] /* 1 dimension */,
  CONST Integer REFPTR lrq,
  CONST Integer REFPTR n,
  CONST double u[] /* 1 dimension */,
  CONST double v[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  double q[] /* 1 dimension */,
  double qx[] /* 1 dimension */,
  double qy[] /* 1 dimension */,
  double qz[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01tkf_ E01TKF
#else
#define E01TKF e01tkf_
#endif
extern void NAG_CALL E01TKF(
  CONST Integer REFPTR m,
  CONST double x[] /* 2 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer REFPTR nw,
  CONST Integer REFPTR nq,
  Integer iq[] /* 1 dimension */,
  double rq[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01tlf_ E01TLF
#else
#define E01TLF e01tlf_
#endif
extern void NAG_CALL E01TLF(
  CONST Integer REFPTR m,
  CONST double x[] /* 2 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer iq[] /* 1 dimension */,
  CONST double rq[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST double xe[] /* 2 dimension */,
  double q[] /* 1 dimension */,
  double qx[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01tmf_ E01TMF
#else
#define E01TMF e01tmf_
#endif
extern void NAG_CALL E01TMF(
  CONST Integer REFPTR m,
  CONST double x[] /* 2 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer REFPTR nw,
  CONST Integer REFPTR nq,
  Integer iq[] /* 1 dimension */,
  double rq[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e01tnf_ E01TNF
#else
#define E01TNF e01tnf_
#endif
extern void NAG_CALL E01TNF(
  CONST Integer REFPTR m,
  CONST double x[] /* 2 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST Integer iq[] /* 1 dimension */,
  CONST double rq[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST double xe[] /* 2 dimension */,
  double q[] /* 1 dimension */,
  double qx[] /* 2 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02acf_ E02ACF
#else
#define E02ACF e02acf_
#endif
extern void NAG_CALL E02ACF(
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR m1,
  double REFPTR ref
);
#if defined (_WIN32) || defined (_WIN64)
#define e02adf_ E02ADF
#else
#define E02ADF e02adf_
#endif
extern void NAG_CALL E02ADF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR kplus1,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  double work1[] /* 1 dimension */,
  double work2[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  double s[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02aef_ E02AEF
#else
#define E02AEF e02aef_
#endif
extern void NAG_CALL E02AEF(
  CONST Integer REFPTR nplus1,
  CONST double a[] /* 1 dimension */,
  CONST double REFPTR xcap,
  double REFPTR p,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02aff_ E02AFF
#else
#define E02AFF e02aff_
#endif
extern void NAG_CALL E02AFF(
  CONST Integer REFPTR nplus1,
  CONST double f[] /* 1 dimension */,
  double a[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02agf_ E02AGF
#else
#define E02AGF e02agf_
#endif
extern void NAG_CALL E02AGF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR kplus1,
  CONST Integer REFPTR lda,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  CONST Integer REFPTR mf,
  CONST double xf[] /* 1 dimension */,
  CONST double yf[] /* 1 dimension */,
  CONST Integer REFPTR lyf,
  CONST Integer ip[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  double s[] /* 1 dimension */,
  Integer REFPTR np1,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  CONST Integer REFPTR liwrk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02ahf_ E02AHF
#else
#define E02AHF e02ahf_
#endif
extern void NAG_CALL E02AHF(
  CONST Integer REFPTR np1,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR ia1,
  CONST Integer REFPTR la,
  double REFPTR patm1,
  double adif[] /* 1 dimension */,
  CONST Integer REFPTR iadif1,
  CONST Integer REFPTR ladif,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02ajf_ E02AJF
#else
#define E02AJF e02ajf_
#endif
extern void NAG_CALL E02AJF(
  CONST Integer REFPTR np1,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR ia1,
  CONST Integer REFPTR la,
  CONST double REFPTR qatm1,
  double aint[] /* 1 dimension */,
  CONST Integer REFPTR iaint1,
  CONST Integer REFPTR laint,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02akf_ E02AKF
#else
#define E02AKF e02akf_
#endif
extern void NAG_CALL E02AKF(
  CONST Integer REFPTR np1,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR ia1,
  CONST Integer REFPTR la,
  CONST double REFPTR x,
  double REFPTR result,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02baf_ E02BAF
#else
#define E02BAF e02baf_
#endif
extern void NAG_CALL E02BAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR ncap7,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  double lamda[] /* 1 dimension */,
  double work1[] /* 1 dimension */,
  double work2[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR ss,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02bbf_ E02BBF
#else
#define E02BBF e02bbf_
#endif
extern void NAG_CALL E02BBF(
  CONST Integer REFPTR ncap7,
  CONST double lamda[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  CONST double REFPTR x,
  double REFPTR s,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02bcf_ E02BCF
#else
#define E02BCF e02bcf_
#endif
extern void NAG_CALL E02BCF(
  CONST Integer REFPTR ncap7,
  CONST double lamda[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  CONST double REFPTR x,
  CONST Integer REFPTR left,
  double s[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02bdf_ E02BDF
#else
#define E02BDF e02bdf_
#endif
extern void NAG_CALL E02BDF(
  CONST Integer REFPTR ncap7,
  CONST double lamda[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  double REFPTR dint,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e02bef_(start, m, x, y, w, s, nest, n, lamda, c, fp, wrk, lwrk, iwrk, ifail, length_start)  \
E02BEF(start, length_start, m, x, y, w, s, nest, n, lamda, c, fp, wrk, lwrk, iwrk, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e02bef_ E02BEF
#else
#define E02BEF e02bef_
#endif
extern void NAG_CALL E02BEF(
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  CONST double REFPTR s,
  CONST Integer REFPTR nest,
  Integer REFPTR n,
  double lamda[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR fp,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e02caf_ E02CAF
#else
#define E02CAF e02caf_
#endif
extern void NAG_CALL E02CAF(
  CONST Integer m[] /* 1 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  CONST Integer REFPTR mtot,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR na,
  CONST double xmin[] /* 1 dimension */,
  CONST double xmax[] /* 1 dimension */,
  CONST double nux[] /* 1 dimension */,
  CONST Integer REFPTR inuxp1,
  CONST double nuy[] /* 1 dimension */,
  CONST Integer REFPTR inuyp1,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR nwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02cbf_ E02CBF
#else
#define E02CBF e02cbf_
#endif
extern void NAG_CALL E02CBF(
  CONST Integer REFPTR mfirst,
  CONST Integer REFPTR mlast,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  CONST double x[] /* 1 dimension */,
  CONST double REFPTR xmin,
  CONST double REFPTR xmax,
  CONST double REFPTR y,
  CONST double REFPTR ymin,
  CONST double REFPTR ymax,
  double ff[] /* 1 dimension */,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR na,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR nwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02daf_ E02DAF
#else
#define E02DAF e02daf_
#endif
extern void NAG_CALL E02DAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR px,
  CONST Integer REFPTR py,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  double lamda[] /* 1 dimension */,
  double mu[] /* 1 dimension */,
  CONST Integer point[] /* 1 dimension */,
  CONST Integer REFPTR npoint,
  double dl[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST Integer REFPTR nc,
  double ws[] /* 1 dimension */,
  CONST Integer REFPTR nws,
  CONST double REFPTR eps,
  double REFPTR sigma,
  Integer REFPTR rank,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e02dcf_(start, mx, x, my, y, f, s, nxest, nyest, nx, lamda, ny, mu, c, fp, wrk, lwrk, iwrk, liwrk, ifail, length_start)  \
E02DCF(start, length_start, mx, x, my, y, f, s, nxest, nyest, nx, lamda, ny, mu, c, fp, wrk, lwrk, iwrk, liwrk, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e02dcf_ E02DCF
#else
#define E02DCF e02dcf_
#endif
extern void NAG_CALL E02DCF(
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST Integer REFPTR mx,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR my,
  CONST double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double REFPTR s,
  CONST Integer REFPTR nxest,
  CONST Integer REFPTR nyest,
  Integer REFPTR nx,
  double lamda[] /* 1 dimension */,
  Integer REFPTR ny,
  double mu[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR fp,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  CONST Integer REFPTR liwrk,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e02ddf_(start, m, x, y, f, w, s, nxest, nyest, nx, lamda, ny, mu, c, fp, rank, wrk, lwrk, iwrk, liwrk, ifail, length_start)  \
E02DDF(start, length_start, m, x, y, f, w, s, nxest, nyest, nx, lamda, ny, mu, c, fp, rank, wrk, lwrk, iwrk, liwrk, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e02ddf_ E02DDF
#else
#define E02DDF e02ddf_
#endif
extern void NAG_CALL E02DDF(
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST Integer REFPTR m,
  double x[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST double f[] /* 1 dimension */,
  CONST double w[] /* 1 dimension */,
  CONST double REFPTR s,
  CONST Integer REFPTR nxest,
  CONST Integer REFPTR nyest,
  Integer REFPTR nx,
  double lamda[] /* 1 dimension */,
  Integer REFPTR ny,
  double mu[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR fp,
  Integer REFPTR rank,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  CONST Integer REFPTR liwrk,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e02def_ E02DEF
#else
#define E02DEF e02def_
#endif
extern void NAG_CALL E02DEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR px,
  CONST Integer REFPTR py,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double lamda[] /* 1 dimension */,
  CONST double mu[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  double ff[] /* 1 dimension */,
  double wrk[] /* 1 dimension */,
  Integer iwrk[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02dff_ E02DFF
#else
#define E02DFF e02dff_
#endif
extern void NAG_CALL E02DFF(
  CONST Integer REFPTR mx,
  CONST Integer REFPTR my,
  CONST Integer REFPTR px,
  CONST Integer REFPTR py,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double lamda[] /* 1 dimension */,
  CONST double mu[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  double ff[] /* 1 dimension */,
  double wrk[] /* 1 dimension */,
  CONST Integer REFPTR lwrk,
  Integer iwrk[] /* 1 dimension */,
  CONST Integer REFPTR liwrk,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02dhf_ E02DHF
#else
#define E02DHF e02dhf_
#endif
extern void NAG_CALL E02DHF(
  CONST Integer REFPTR mx,
  CONST Integer REFPTR my,
  CONST Integer REFPTR px,
  CONST Integer REFPTR py,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  CONST double lamda[] /* 1 dimension */,
  CONST double mu[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR nux,
  CONST Integer REFPTR nuy,
  double z[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02gaf_ E02GAF
#else
#define E02GAF e02gaf_
#endif
extern void NAG_CALL E02GAF(
  CONST Integer REFPTR m,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 1 dimension */,
  CONST Integer REFPTR nplus2,
  CONST double REFPTR toler,
  double x[] /* 1 dimension */,
  double REFPTR resid,
  Integer REFPTR irank,
  Integer REFPTR iter,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02gbf_ E02GBF
#else
#define E02GBF e02gbf_
#endif
extern void NAG_CALL E02GBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR mpl,
  double e[] /* 2 dimension */,
  CONST Integer REFPTR lde,
  CONST double f[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR mxs,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ),
  CONST Integer REFPTR iprint,
  Integer REFPTR k,
  double REFPTR el1n,
  Integer indx[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR iw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02gcf_ E02GCF
#else
#define E02GCF e02gcf_
#endif
extern void NAG_CALL E02GCF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR sda,
  CONST Integer REFPTR lda,
  double a[] /* 2 dimension */,
  double b[] /* 1 dimension */,
  CONST double REFPTR tol,
  double REFPTR relerr,
  double x[] /* 1 dimension */,
  double REFPTR resmax,
  Integer REFPTR irank,
  Integer REFPTR iter,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02raf_ E02RAF
#else
#define E02RAF e02raf_
#endif
extern void NAG_CALL E02RAF(
  CONST Integer REFPTR ia,
  CONST Integer REFPTR ib,
  CONST double c[] /* 1 dimension */,
  CONST Integer REFPTR ic,
  double a[] /* 1 dimension */,
  double b[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR jw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02rbf_ E02RBF
#else
#define E02RBF e02rbf_
#endif
extern void NAG_CALL E02RBF(
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR ia,
  CONST double b[] /* 1 dimension */,
  CONST Integer REFPTR ib,
  CONST double REFPTR x,
  double REFPTR ans,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e02zaf_ E02ZAF
#else
#define E02ZAF e02zaf_
#endif
extern void NAG_CALL E02ZAF(
  CONST Integer REFPTR px,
  CONST Integer REFPTR py,
  CONST double lamda[] /* 1 dimension */,
  CONST double mu[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double x[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  Integer point[] /* 1 dimension */,
  CONST Integer REFPTR npoint,
  Integer adres[] /* 1 dimension */,
  CONST Integer REFPTR nadres,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04aba_ E04ABA
#else
#define E04ABA e04aba_
#endif
extern void NAG_CALL E04ABA(
  void (NAG_CALL *funct)(
                         CONST double REFPTR ,
                         double REFPTR ,
                         Integer[],
                         double[]),
  double REFPTR e1,
  double REFPTR e2,
  double REFPTR a,
  double REFPTR b,
  Integer REFPTR maxcal,
  double REFPTR x,
  double REFPTR f,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04abf_ E04ABF
#else
#define E04ABF e04abf_
#endif
extern void NAG_CALL E04ABF(
  void (NAG_CALL *funct)(
                         CONST double REFPTR ,
                         double REFPTR ),
  double REFPTR e1,
  double REFPTR e2,
  double REFPTR a,
  double REFPTR b,
  Integer REFPTR maxcal,
  double REFPTR x,
  double REFPTR f,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04bba_ E04BBA
#else
#define E04BBA e04bba_
#endif
extern void NAG_CALL E04BBA(
  void (NAG_CALL *funct)(
                         CONST double REFPTR ,
                         double REFPTR ,
                         double REFPTR ,
                         Integer[],
                         double[]),
  double REFPTR e1,
  double REFPTR e2,
  double REFPTR a,
  double REFPTR b,
  Integer REFPTR maxcal,
  double REFPTR x,
  double REFPTR f,
  double REFPTR g,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04bbf_ E04BBF
#else
#define E04BBF e04bbf_
#endif
extern void NAG_CALL E04BBF(
  void (NAG_CALL *funct)(
                         CONST double REFPTR ,
                         double REFPTR ,
                         double REFPTR ),
  double REFPTR e1,
  double REFPTR e2,
  double REFPTR a,
  double REFPTR b,
  Integer REFPTR maxcal,
  double REFPTR x,
  double REFPTR f,
  double REFPTR g,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04cbf_ E04CBF
#else
#define E04CBF e04cbf_
#endif
extern void NAG_CALL E04CBF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double REFPTR f,
  CONST double REFPTR tolf,
  CONST double REFPTR tolx,
  void (NAG_CALL *funct)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         Integer[],
                         double[]),
  void (NAG_CALL *monit)(
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         Integer[],
                         double[]),
  CONST Integer REFPTR maxcal,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04cbk_ E04CBK
#else
#define E04CBK e04cbk_
#endif
extern void NAG_CALL E04CBK(
  CONST double REFPTR fmin,
  CONST double REFPTR fmax,
  CONST double sim[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncall,
  CONST double REFPTR serror,
  CONST double REFPTR vratio,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04cca_ E04CCA
#else
#define E04CCA e04cca_
#endif
extern void NAG_CALL E04CCA(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double REFPTR f,
  CONST double REFPTR tol,
  CONST Integer REFPTR iw,
  double w1[] /* 1 dimension */,
  double w2[] /* 1 dimension */,
  double w3[] /* 1 dimension */,
  double w4[] /* 1 dimension */,
  double w5[] /* 1 dimension */,
  double w6[] /* 2 dimension */,
  void (NAG_CALL *funct)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         Integer[],
                         double[]),
  void (NAG_CALL *monit)(
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         Integer[],
                         double[]),
  CONST Integer REFPTR maxcal,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ccf_ E04CCF
#else
#define E04CCF e04ccf_
#endif
extern void NAG_CALL E04CCF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double REFPTR f,
  CONST double REFPTR tol,
  CONST Integer REFPTR iw,
  double w1[] /* 1 dimension */,
  double w2[] /* 1 dimension */,
  double w3[] /* 1 dimension */,
  double w4[] /* 1 dimension */,
  double w5[] /* 1 dimension */,
  double w6[] /* 2 dimension */,
  void (NAG_CALL *funct)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ),
  void (NAG_CALL *monit)(
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST double[],
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ),
  CONST Integer REFPTR maxcal,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04dga_ E04DGA
#else
#define E04DGA e04dga_
#endif
extern void NAG_CALL E04DGA(
  CONST Integer REFPTR n,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04dgf_ E04DGF
#else
#define E04DGF e04dgf_
#endif
extern void NAG_CALL E04DGF(
  CONST Integer REFPTR n,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04dja_ E04DJA
#else
#define E04DJA e04dja_
#endif
extern void NAG_CALL E04DJA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04djf_ E04DJF
#else
#define E04DJF e04djf_
#endif
extern void NAG_CALL E04DJF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04dka_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04DKA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04dka_ E04DKA
#else
#define E04DKA e04dka_
#endif
extern void NAG_CALL E04DKA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04dkf_ E04DKF
#else
#define E04DKF e04dkf_
#endif
extern void NAG_CALL E04DKF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04fcf_ E04FCF
#else
#define E04FCF e04fcf_
#endif
extern void NAG_CALL E04FCF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqmon)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR stepmx,
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double s[] /* 1 dimension */,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  Integer REFPTR niter,
  Integer REFPTR nf,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04fcv_ E04FCV
#else
#define E04FCV e04fcv_
#endif
extern void NAG_CALL E04FCV(
  Integer REFPTR lsqlin_select
);
#if defined (_WIN32) || defined (_WIN64)
#define e04fdz_ E04FDZ
#else
#define E04FDZ e04fdz_
#endif
extern void NAG_CALL E04FDZ(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double xc[] /* 1 dimension */,
  CONST double fvec[] /* 1 dimension */,
  CONST double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  CONST double s[] /* 1 dimension */,
  CONST Integer REFPTR igrade,
  CONST Integer REFPTR niter,
  CONST Integer REFPTR nf,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw
);
#if defined (_WIN32) || defined (_WIN64)
#define e04fyf_ E04FYF
#else
#define E04FYF e04fyf_
#endif
extern void NAG_CALL E04FYF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsfun1)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          Integer[],
                          double[]),
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04gbf_ E04GBF
#else
#define E04GBF e04gbf_
#endif
extern void NAG_CALL E04GBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqlin)(
                          Integer REFPTR ),
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqmon)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR stepmx,
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double s[] /* 1 dimension */,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  Integer REFPTR niter,
  Integer REFPTR nf,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04gdf_ E04GDF
#else
#define E04GDF e04gdf_
#endif
extern void NAG_CALL E04GDF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqmon)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR stepmx,
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double s[] /* 1 dimension */,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  Integer REFPTR niter,
  Integer REFPTR nf,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04gyf_ E04GYF
#else
#define E04GYF e04gyf_
#endif
extern void NAG_CALL E04GYF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsfun2)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04gzf_ E04GZF
#else
#define E04GZF e04gzf_
#endif
extern void NAG_CALL E04GZF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsfun2)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04hcf_ E04HCF
#else
#define E04HCF e04hcf_
#endif
extern void NAG_CALL E04HCF(
  CONST Integer REFPTR n,
  void (NAG_CALL *funct)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         double[],
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  CONST double x[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04hdf_ E04HDF
#else
#define E04HDF e04hdf_
#endif
extern void NAG_CALL E04HDF(
  CONST Integer REFPTR n,
  void (NAG_CALL *funct)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         double[],
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *h)(
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST double[],
                     double[],
                     CONST Integer REFPTR ,
                     double[],
                     Integer[],
                     CONST Integer REFPTR ,
                     double[],
                     CONST Integer REFPTR ),
  CONST double x[] /* 1 dimension */,
  double g[] /* 1 dimension */,
  double hesl[] /* 1 dimension */,
  CONST Integer REFPTR lh,
  double hesd[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04hef_ E04HEF
#else
#define E04HEF e04hef_
#endif
extern void NAG_CALL E04HEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqhes)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqmon)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR stepmx,
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double s[] /* 1 dimension */,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  Integer REFPTR niter,
  Integer REFPTR nf,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04hev_ E04HEV
#else
#define E04HEV e04hev_
#endif
extern void NAG_CALL E04HEV(
  Integer REFPTR lsqlin_select
);
#if defined (_WIN32) || defined (_WIN64)
#define e04hyf_ E04HYF
#else
#define E04HYF e04hyf_
#endif
extern void NAG_CALL E04HYF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsfun2)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *lshes2)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  double x[] /* 1 dimension */,
  double REFPTR fsumsq,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04jcf_ E04JCF
#else
#define E04JCF e04jcf_
#endif
extern void NAG_CALL E04JCF(
  void (NAG_CALL *objfun)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          Integer[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR n,
  CONST Integer REFPTR npt,
  double x[] /* 1 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double REFPTR rhobeg,
  CONST double REFPTR rhoend,
  void (NAG_CALL *monfun)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double REFPTR ,
                          CONST double REFPTR ,
                          Integer[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR maxcal,
  double REFPTR f,
  Integer REFPTR nf,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04jcp_ E04JCP
#else
#define E04JCP e04jcp_
#endif
extern void NAG_CALL E04JCP(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nf,
  CONST double x[] /* 1 dimension */,
  CONST double REFPTR f,
  CONST double REFPTR rho,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04jyf_ E04JYF
#else
#define E04JYF e04jyf_
#endif
extern void NAG_CALL E04JYF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ibound,
  void (NAG_CALL *funct1)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          Integer[],
                          double[]),
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR f,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04kdf_ E04KDF
#else
#define E04KDF e04kdf_
#endif
extern void NAG_CALL E04KDF(
  CONST Integer REFPTR n,
  void (NAG_CALL *funct)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         double[],
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double REFPTR ,
                         CONST double[],
                         CONST Integer[],
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST logical REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR delta,
  CONST double REFPTR stepmx,
  CONST Integer REFPTR ibound,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double hesl[] /* 1 dimension */,
  CONST Integer REFPTR lh,
  double hesd[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04kyf_ E04KYF
#else
#define E04KYF e04kyf_
#endif
extern void NAG_CALL E04KYF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ibound,
  void (NAG_CALL *funct2)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          Integer[],
                          double[]),
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04kzf_ E04KZF
#else
#define E04KZF e04kzf_
#endif
extern void NAG_CALL E04KZF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ibound,
  void (NAG_CALL *funct2)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          Integer[],
                          double[]),
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04lbf_ E04LBF
#else
#define E04LBF e04lbf_
#endif
extern void NAG_CALL E04LBF(
  CONST Integer REFPTR n,
  void (NAG_CALL *funct)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double REFPTR ,
                         double[],
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *h)(
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST double[],
                     double[],
                     CONST Integer REFPTR ,
                     double[],
                     Integer[],
                     CONST Integer REFPTR ,
                     double[],
                     CONST Integer REFPTR ),
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double REFPTR ,
                         CONST double[],
                         CONST Integer[],
                         CONST double REFPTR ,
                         CONST double REFPTR ,
                         CONST logical REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         Integer[],
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ),
  CONST Integer REFPTR iprint,
  CONST Integer REFPTR maxcal,
  CONST double REFPTR eta,
  CONST double REFPTR xtol,
  CONST double REFPTR stepmx,
  CONST Integer REFPTR ibound,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double hesl[] /* 1 dimension */,
  CONST Integer REFPTR lh,
  double hesd[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04lyf_ E04LYF
#else
#define E04LYF e04lyf_
#endif
extern void NAG_CALL E04LYF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ibound,
  void (NAG_CALL *funct2)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          Integer[],
                          double[]),
  void (NAG_CALL *hess2)(
                         CONST Integer REFPTR ,
                         CONST double[],
                         double[],
                         CONST Integer REFPTR ,
                         double[],
                         Integer[],
                         double[]),
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR f,
  double g[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04mfa_ E04MFA
#else
#define E04MFA e04mfa_
#endif
extern void NAG_CALL E04MFA(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double ax[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04mff_ E04MFF
#else
#define E04MFF e04mff_
#endif
extern void NAG_CALL E04MFF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double ax[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04mga_ E04MGA
#else
#define E04MGA e04mga_
#endif
extern void NAG_CALL E04MGA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04mgf_ E04MGF
#else
#define E04MGF e04mgf_
#endif
extern void NAG_CALL E04MGF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04mha_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04MHA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04mha_ E04MHA
#else
#define E04MHA e04mha_
#endif
extern void NAG_CALL E04MHA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04mhf_ E04MHF
#else
#define E04MHF e04mhf_
#endif
extern void NAG_CALL E04MHF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04mzf_(infile, maxn, maxm, maxnnz, xbldef, xbudef, mpslst, n, m, nnz, iobj, ncolh, a, ha, ka, bl, bu, start, names, nname, crname, xs, istate, ifail, length_start, length_names, length_crname)  \
E04MZF(infile, maxn, maxm, maxnnz, xbldef, xbudef, mpslst, n, m, nnz, iobj, ncolh, a, ha, ka, bl, bu, start, length_start, names, length_names, nname, crname, length_crname, xs, istate, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04mzf_ E04MZF
#else
#define E04MZF e04mzf_
#endif
extern void NAG_CALL E04MZF(
  CONST Integer REFPTR infile,
  CONST Integer REFPTR maxn,
  CONST Integer REFPTR maxm,
  CONST Integer REFPTR maxnnz,
  CONST double REFPTR xbldef,
  CONST double REFPTR xbudef,
  CONST logical REFPTR mpslst,
  Integer REFPTR n,
  Integer REFPTR m,
  Integer REFPTR nnz,
  Integer REFPTR iobj,
  Integer REFPTR ncolh,
  double a[] /* 1 dimension */,
  Integer ha[] /* 1 dimension */,
  Integer ka[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  Integer REFPTR nname,
  char crname[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_crname
#endif
,
  double xs[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_names,
 CONST Charlen length_crname
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nca_ E04NCA
#else
#define E04NCA e04nca_
#endif
extern void NAG_CALL E04NCA(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ldc,
  CONST Integer REFPTR lda,
  CONST double c[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  Integer kx[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  double b[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ncf_ E04NCF
#else
#define E04NCF e04ncf_
#endif
extern void NAG_CALL E04NCF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ldc,
  CONST Integer REFPTR lda,
  CONST double c[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  Integer kx[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  double b[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nda_ E04NDA
#else
#define E04NDA e04nda_
#endif
extern void NAG_CALL E04NDA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ndf_ E04NDF
#else
#define E04NDF e04ndf_
#endif
extern void NAG_CALL E04NDF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nea_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04NEA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nea_ E04NEA
#else
#define E04NEA e04nea_
#endif
extern void NAG_CALL E04NEA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nef_ E04NEF
#else
#define E04NEF e04nef_
#endif
extern void NAG_CALL E04NEF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nfa_ E04NFA
#else
#define E04NFA e04nfa_
#endif
extern void NAG_CALL E04NFA(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  CONST double h[] /* 2 dimension */,
  CONST Integer REFPTR ldh,
  void (NAG_CALL *qphess)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          Integer[],
                          double[],
                          Integer[]),
  Integer istate[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double ax[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nff_ E04NFF
#else
#define E04NFF e04nff_
#endif
extern void NAG_CALL E04NFF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double cvec[] /* 1 dimension */,
  CONST double h[] /* 2 dimension */,
  CONST Integer REFPTR ldh,
  void (NAG_CALL *qphess)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[]),
  Integer istate[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  Integer REFPTR iter,
  double REFPTR obj,
  double ax[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e54nfu_ E54NFU
#else
#define E54NFU e54nfu_
#endif
extern void NAG_CALL E54NFU(
  CONST Integer REFPTR n,
  CONST Integer REFPTR jthcol,
  CONST double h[] /* 2 dimension */,
  CONST Integer REFPTR ldh,
  CONST double x[] /* 1 dimension */,
  double hx[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nfu_ E04NFU
#else
#define E04NFU e04nfu_
#endif
extern void NAG_CALL E04NFU(
  CONST Integer REFPTR n,
  CONST Integer REFPTR jthcol,
  CONST double h[] /* 2 dimension */,
  CONST Integer REFPTR ldh,
  CONST double x[] /* 1 dimension */,
  double hx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nga_ E04NGA
#else
#define E04NGA e04nga_
#endif
extern void NAG_CALL E04NGA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ngf_ E04NGF
#else
#define E04NGF e04ngf_
#endif
extern void NAG_CALL E04NGF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nha_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04NHA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nha_ E04NHA
#else
#define E04NHA e04nha_
#endif
extern void NAG_CALL E04NHA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nhf_ E04NHF
#else
#define E04NHF e04nhf_
#endif
extern void NAG_CALL E04NHF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nka_(n, m, nnz, iobj, ncolh, qphx, a, ha, ka, bl, bu, start, names, nname, crname, ns, xs, istate, miniz, minz, ninf, sinf, obj, clamda, iz, leniz, z, lenz, iuser, ruser, lwsav, iwsav, rwsav, ifail, length_start, length_names, length_crname)  \
E04NKA(n, m, nnz, iobj, ncolh, qphx, a, ha, ka, bl, bu, start, length_start, names, length_names, nname, crname, length_crname, ns, xs, istate, miniz, minz, ninf, sinf, obj, clamda, iz, leniz, z, lenz, iuser, ruser, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nka_ E04NKA
#else
#define E04NKA e04nka_
#endif
extern void NAG_CALL E04NKA(
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  CONST Integer REFPTR nnz,
  CONST Integer REFPTR iobj,
  CONST Integer REFPTR ncolh,
  void (NAG_CALL *qphx)(
                        CONST Integer REFPTR ,
                        CONST Integer REFPTR ,
                        CONST double[],
                        double[],
                        Integer[],
                        double[]),
  double a[] /* 1 dimension */,
  CONST Integer ha[] /* 1 dimension */,
  CONST Integer ka[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  CONST Integer REFPTR nname,
  CONST char crname[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_crname
#endif
,
  Integer REFPTR ns,
  double xs[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  Integer REFPTR miniz,
  Integer REFPTR minz,
  Integer REFPTR ninf,
  double REFPTR sinf,
  double REFPTR obj,
  double clamda[] /* 1 dimension */,
  Integer iz[] /* 1 dimension */,
  CONST Integer REFPTR leniz,
  double z[] /* 1 dimension */,
  CONST Integer REFPTR lenz,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_names,
 CONST Charlen length_crname
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nkf_(n, m, nnz, iobj, ncolh, qphx, a, ha, ka, bl, bu, start, names, nname, crname, ns, xs, istate, miniz, minz, ninf, sinf, obj, clamda, iz, leniz, z, lenz, ifail, length_start, length_names, length_crname)  \
E04NKF(n, m, nnz, iobj, ncolh, qphx, a, ha, ka, bl, bu, start, length_start, names, length_names, nname, crname, length_crname, ns, xs, istate, miniz, minz, ninf, sinf, obj, clamda, iz, leniz, z, lenz, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nkf_ E04NKF
#else
#define E04NKF e04nkf_
#endif
extern void NAG_CALL E04NKF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  CONST Integer REFPTR nnz,
  CONST Integer REFPTR iobj,
  CONST Integer REFPTR ncolh,
  void (NAG_CALL *qphx)(
                        CONST Integer REFPTR ,
                        CONST Integer REFPTR ,
                        CONST double[],
                        double[]),
  double a[] /* 1 dimension */,
  CONST Integer ha[] /* 1 dimension */,
  CONST Integer ka[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  CONST Integer REFPTR nname,
  CONST char crname[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_crname
#endif
,
  Integer REFPTR ns,
  double xs[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  Integer REFPTR miniz,
  Integer REFPTR minz,
  Integer REFPTR ninf,
  double REFPTR sinf,
  double REFPTR obj,
  double clamda[] /* 1 dimension */,
  Integer iz[] /* 1 dimension */,
  CONST Integer REFPTR leniz,
  double z[] /* 1 dimension */,
  CONST Integer REFPTR lenz,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_names,
 CONST Charlen length_crname
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e54nku_ E54NKU
#else
#define E54NKU e54nku_
#endif
extern void NAG_CALL E54NKU(
  CONST Integer REFPTR nstate,
  CONST Integer REFPTR ncolh,
  CONST double x[] /* 1 dimension */,
  double hx[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nku_ E04NKU
#else
#define E04NKU e04nku_
#endif
extern void NAG_CALL E04NKU(
  CONST Integer REFPTR nstate,
  CONST Integer REFPTR ncolh,
  CONST double x[] /* 1 dimension */,
  double hx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nla_ E04NLA
#else
#define E04NLA e04nla_
#endif
extern void NAG_CALL E04NLA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nlf_ E04NLF
#else
#define E04NLF e04nlf_
#endif
extern void NAG_CALL E04NLF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nma_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04NMA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nma_ E04NMA
#else
#define E04NMA e04nma_
#endif
extern void NAG_CALL E04NMA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04nmf_ E04NMF
#else
#define E04NMF e04nmf_
#endif
extern void NAG_CALL E04NMF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04npf_(cw, lencw, iw, leniw, rw, lenrw, ifail, length_cw)  \
E04NPF(cw, length_cw, lencw, iw, leniw, rw, lenrw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04npf_ E04NPF
#else
#define E04NPF e04npf_
#endif
extern void NAG_CALL E04NPF(
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  CONST Integer REFPTR lencw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nqf_(start, qphx, m, n, ne, nname, lenc, ncolh, iobj, objadd, prob, acol, inda, loca, bl, bu, c, names, helast, hs, x, pi, rc, ns, ninf, sinf, obj, cw, lencw, iw, leniw, rw, lenrw, cuser, iuser, ruser, ifail, length_start, length_prob, length_names, length_cw, length_cuser)  \
E04NQF(start, length_start, qphx, m, n, ne, nname, lenc, ncolh, iobj, objadd, prob, length_prob, acol, inda, loca, bl, bu, c, names, length_names, helast, hs, x, pi, rc, ns, ninf, sinf, obj, cw, length_cw, lencw, iw, leniw, rw, lenrw, cuser, length_cuser, iuser, ruser, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nqf_ E04NQF
#else
#define E04NQF e04nqf_
#endif
extern void NAG_CALL E04NQF(
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  void (NAG_CALL *qphx)(
                        CONST Integer REFPTR ,
                        CONST double[],
                        double[],
                        CONST Integer REFPTR ,
                        char[]
                        STDCALLLEN,
                        Integer[],
                        double[]
                        NSTDCALLLEN),
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ne,
  CONST Integer REFPTR nname,
  CONST Integer REFPTR lenc,
  CONST Integer REFPTR ncolh,
  CONST Integer REFPTR iobj,
  CONST double REFPTR objadd,
  CONST char * prob
#ifdef USE_STDCALL
,  CONST Charlen length_prob
#endif
,
  double acol[] /* 1 dimension */,
  CONST Integer inda[] /* 1 dimension */,
  CONST Integer loca[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  CONST Integer helast[] /* 1 dimension */,
  Integer hs[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double pi[] /* 1 dimension */,
  double rc[] /* 1 dimension */,
  Integer REFPTR ns,
  Integer REFPTR ninf,
  double REFPTR sinf,
  double REFPTR obj,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  CONST Integer REFPTR lencw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  char cuser[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cuser
#endif
,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_prob,
 CONST Charlen length_names,
 CONST Charlen length_cw,
 CONST Charlen length_cuser
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nrf_(ispecs, cw, iw, rw, ifail, length_cw)  \
E04NRF(ispecs, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nrf_ E04NRF
#else
#define E04NRF e04nrf_
#endif
extern void NAG_CALL E04NRF(
  CONST Integer REFPTR ispecs,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nsf_(st, cw, iw, rw, ifail, length_st, length_cw)  \
E04NSF(st, length_st, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nsf_ E04NSF
#else
#define E04NSF e04nsf_
#endif
extern void NAG_CALL E04NSF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nsh_(ncolh, x, hx, nstate, cuser, iuser, ruser, length_cuser)  \
E04NSH(ncolh, x, hx, nstate, cuser, length_cuser, iuser, ruser) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nsh_ E04NSH
#else
#define E04NSH e04nsh_
#endif
extern void NAG_CALL E04NSH(
  CONST Integer REFPTR ncolh,
  CONST double x[] /* 1 dimension */,
  double hx[] /* 1 dimension */,
  CONST Integer REFPTR nstate,
  char cuser[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cuser
#endif
,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_cuser
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04ntf_(st, ivalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04NTF(st, length_st, ivalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04ntf_ E04NTF
#else
#define E04NTF e04ntf_
#endif
extern void NAG_CALL E04NTF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST Integer REFPTR ivalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nuf_(st, rvalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04NUF(st, length_st, rvalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nuf_ E04NUF
#else
#define E04NUF e04nuf_
#endif
extern void NAG_CALL E04NUF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST double REFPTR rvalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nxf_(st, ivalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04NXF(st, length_st, ivalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nxf_ E04NXF
#else
#define E04NXF e04nxf_
#endif
extern void NAG_CALL E04NXF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  Integer REFPTR ivalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04nyf_(st, rvalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04NYF(st, length_st, rvalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04nyf_ E04NYF
#else
#define E04NYF e04nyf_
#endif
extern void NAG_CALL E04NYF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  double REFPTR rvalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uca_ E04UCA
#else
#define E04UCA e04uca_
#endif
extern void NAG_CALL E04UCA(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ucf_ E04UCF
#else
#define E04UCF e04ucf_
#endif
extern void NAG_CALL E04UCF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uda_ E04UDA
#else
#define E04UDA e04uda_
#endif
extern void NAG_CALL E04UDA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04udf_ E04UDF
#else
#define E04UDF e04udf_
#endif
extern void NAG_CALL E04UDF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04udm_ E04UDM
#else
#define E04UDM e04udm_
#endif
extern void NAG_CALL E04UDM(
  Integer REFPTR mode,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ldcj,
  CONST Integer needc[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04uea_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04UEA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04uea_ E04UEA
#else
#define E04UEA e04uea_
#endif
extern void NAG_CALL E04UEA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uef_ E04UEF
#else
#define E04UEF e04uef_
#endif
extern void NAG_CALL E04UEF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04ufa_(irevcm, n, nclin, ncnln, lda, ldcj, ldr, a, bl, bu, iter, istate, c, cjac, clamda, objf, objgrd, r, x, needc, iwork, liwork, work, lwork, cwsav, lwsav, iwsav, rwsav, ifail, length_cwsav)  \
E04UFA(irevcm, n, nclin, ncnln, lda, ldcj, ldr, a, bl, bu, iter, istate, c, cjac, clamda, objf, objgrd, r, x, needc, iwork, liwork, work, lwork, cwsav, length_cwsav, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04ufa_ E04UFA
#else
#define E04UFA e04ufa_
#endif
extern void NAG_CALL E04UFA(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer needc[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cwsav
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uff_ E04UFF
#else
#define E04UFF e04uff_
#endif
extern void NAG_CALL E04UFF(
  Integer REFPTR irevcm,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer needc[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04uga_(confun, objfun, n, m, ncnln, nonln, njnln, iobj, nnz, a, ha, ka, bl, bu, start, nname, names, ns, xs, istate, clamda, miniz, minz, ninf, sinf, obj, iz, leniz, z, lenz, iuser, ruser, lwsav, iwsav, rwsav, ifail, length_start, length_names)  \
E04UGA(confun, objfun, n, m, ncnln, nonln, njnln, iobj, nnz, a, ha, ka, bl, bu, start, length_start, nname, names, length_names, ns, xs, istate, clamda, miniz, minz, ninf, sinf, obj, iz, leniz, z, lenz, iuser, ruser, lwsav, iwsav, rwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04uga_ E04UGA
#else
#define E04UGA e04uga_
#endif
extern void NAG_CALL E04UGA(
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR nonln,
  CONST Integer REFPTR njnln,
  CONST Integer REFPTR iobj,
  CONST Integer REFPTR nnz,
  double a[] /* 1 dimension */,
  CONST Integer ha[] /* 1 dimension */,
  CONST Integer ka[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST Integer REFPTR nname,
  CONST char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  Integer REFPTR ns,
  double xs[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer REFPTR miniz,
  Integer REFPTR minz,
  Integer REFPTR ninf,
  double REFPTR sinf,
  double REFPTR obj,
  Integer iz[] /* 1 dimension */,
  CONST Integer REFPTR leniz,
  double z[] /* 1 dimension */,
  CONST Integer REFPTR lenz,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_names
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04ugf_(confun, objfun, n, m, ncnln, nonln, njnln, iobj, nnz, a, ha, ka, bl, bu, start, nname, names, ns, xs, istate, clamda, miniz, minz, ninf, sinf, obj, iz, leniz, z, lenz, iuser, ruser, ifail, length_start, length_names)  \
E04UGF(confun, objfun, n, m, ncnln, nonln, njnln, iobj, nnz, a, ha, ka, bl, bu, start, length_start, nname, names, length_names, ns, xs, istate, clamda, miniz, minz, ninf, sinf, obj, iz, leniz, z, lenz, iuser, ruser, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04ugf_ E04UGF
#else
#define E04UGF e04ugf_
#endif
extern void NAG_CALL E04UGF(
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR nonln,
  CONST Integer REFPTR njnln,
  CONST Integer REFPTR iobj,
  CONST Integer REFPTR nnz,
  double a[] /* 1 dimension */,
  CONST Integer ha[] /* 1 dimension */,
  CONST Integer ka[] /* 1 dimension */,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  CONST char * start
#ifdef USE_STDCALL
,  CONST Charlen length_start
#endif
,
  CONST Integer REFPTR nname,
  CONST char names[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_names
#endif
,
  Integer REFPTR ns,
  double xs[] /* 1 dimension */,
  Integer istate[] /* 1 dimension */,
  double clamda[] /* 1 dimension */,
  Integer REFPTR miniz,
  Integer REFPTR minz,
  Integer REFPTR ninf,
  double REFPTR sinf,
  double REFPTR obj,
  Integer iz[] /* 1 dimension */,
  CONST Integer REFPTR leniz,
  double z[] /* 1 dimension */,
  CONST Integer REFPTR lenz,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_start,
 CONST Charlen length_names
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ugm_ E04UGM
#else
#define E04UGM e04ugm_
#endif
extern void NAG_CALL E04UGM(
  Integer REFPTR mode,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR njnln,
  CONST Integer REFPTR nnzjac,
  CONST double x[] /* 1 dimension */,
  double f[] /* 1 dimension */,
  double fjac[] /* 1 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ugn_ E04UGN
#else
#define E04UGN e04ugn_
#endif
extern void NAG_CALL E04UGN(
  Integer REFPTR mode,
  CONST Integer REFPTR nonln,
  CONST double x[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04ugvn_(job, tolz, ne, lenka, a, ha, ka, alpha, x, lenx, beta, y, leny, length_job)  \
E04UGVN(job, length_job, tolz, ne, lenka, a, ha, ka, alpha, x, lenx, beta, y, leny) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04ugvn_ E04UGVN
#else
#define E04UGVN e04ugvn_
#endif
extern void NAG_CALL E04UGVN(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST double REFPTR tolz,
  CONST Integer REFPTR ne,
  CONST Integer REFPTR lenka,
  CONST double a[] /* 1 dimension */,
  CONST Integer ha[] /* 1 dimension */,
  CONST Integer ka[] /* 1 dimension */,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR lenx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR leny
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uha_ E04UHA
#else
#define E04UHA e04uha_
#endif
extern void NAG_CALL E04UHA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uhf_ E04UHF
#else
#define E04UHF e04uhf_
#endif
extern void NAG_CALL E04UHF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04uja_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04UJA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04uja_ E04UJA
#else
#define E04UJA e04uja_
#endif
extern void NAG_CALL E04UJA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ujf_ E04UJF
#else
#define E04UJF e04ujf_
#endif
extern void NAG_CALL E04UJF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uqa_ E04UQA
#else
#define E04UQA e04uqa_
#endif
extern void NAG_CALL E04UQA(
  CONST Integer REFPTR ioptns,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e04uqf_ E04UQF
#else
#define E04UQF e04uqf_
#endif
extern void NAG_CALL E04UQF(
  CONST Integer REFPTR ioptns,
  Integer REFPTR inform
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04ura_(str, lwsav, iwsav, rwsav, inform, length_str)  \
E04URA(str, length_str, lwsav, iwsav, rwsav, inform) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04ura_ E04URA
#else
#define E04URA e04ura_
#endif
extern void NAG_CALL E04URA(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif
,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR inform
#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04urf_ E04URF
#else
#define E04URF e04urf_
#endif
extern void NAG_CALL E04URF(
  CONST char * str
#ifdef USE_STDCALL
,  CONST Charlen length_str
#endif

#ifndef USE_STDCALL
, CONST Charlen length_str
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04usa_ E04USA
#else
#define E04USA e04usa_
#endif
extern void NAG_CALL E04USA(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldfj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double f[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  logical lwsav[] /* 1 dimension */,
  Integer iwsav[] /* 1 dimension */,
  double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04usf_ E04USF
#else
#define E04USF e04usf_
#endif
extern void NAG_CALL E04USF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldfj,
  CONST Integer REFPTR ldr,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR iter,
  Integer istate[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double f[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double r[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e54vdm_ E54VDM
#else
#define E54VDM e54vdm_
#endif
extern void NAG_CALL E54VDM(
  Integer REFPTR mode,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ldcjac,
  CONST double x[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04vdm_ E04VDM
#else
#define E04VDM e04vdm_
#endif
extern void NAG_CALL E04VDM(
  Integer REFPTR mode,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ldcjac,
  CONST double x[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  CONST Integer REFPTR nstate
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vgf_(cw, lencw, iw, leniw, rw, lenrw, ifail, length_cw)  \
E04VGF(cw, length_cw, lencw, iw, leniw, rw, lenrw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vgf_ E04VGF
#else
#define E04VGF e04vgf_
#endif
extern void NAG_CALL E04VGF(
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  CONST Integer REFPTR lencw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vhf_(start, nf, n, nxname, nfname, objadd, objrow, prob, usrfun, iafun, javar, a, lena, nea, igfun, jgvar, leng, neg, xlow, xupp, xnames, flow, fupp, fnames, x, xstate, xmul, f, fstate, fmul, ns, ninf, sinf, cw, lencw, iw, leniw, rw, lenrw, cuser, iuser, ruser, ifail, length_prob, length_xnames, length_fnames, length_cw, length_cuser)  \
E04VHF(start, nf, n, nxname, nfname, objadd, objrow, prob, length_prob, usrfun, iafun, javar, a, lena, nea, igfun, jgvar, leng, neg, xlow, xupp, xnames, length_xnames, flow, fupp, fnames, length_fnames, x, xstate, xmul, f, fstate, fmul, ns, ninf, sinf, cw, length_cw, lencw, iw, leniw, rw, lenrw, cuser, length_cuser, iuser, ruser, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vhf_ E04VHF
#else
#define E04VHF e04vhf_
#endif
extern void NAG_CALL E04VHF(
  CONST Integer REFPTR start,
  CONST Integer REFPTR nf,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nxname,
  CONST Integer REFPTR nfname,
  CONST double REFPTR objadd,
  Integer REFPTR objrow,
  CONST char * prob
#ifdef USE_STDCALL
,  CONST Charlen length_prob
#endif
,
  void (NAG_CALL *usrfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          char[]
                          STDCALLLEN,
                          Integer[],
                          double[]
                          NSTDCALLLEN),
  CONST Integer iafun[] /* 1 dimension */,
  CONST Integer javar[] /* 1 dimension */,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR lena,
  CONST Integer REFPTR nea,
  CONST Integer igfun[] /* 1 dimension */,
  CONST Integer jgvar[] /* 1 dimension */,
  CONST Integer REFPTR leng,
  CONST Integer REFPTR neg,
  CONST double xlow[] /* 1 dimension */,
  CONST double xupp[] /* 1 dimension */,
  CONST char xnames[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_xnames
#endif
,
  CONST double flow[] /* 1 dimension */,
  CONST double fupp[] /* 1 dimension */,
  CONST char fnames[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_fnames
#endif
,
  double x[] /* 1 dimension */,
  Integer xstate[] /* 1 dimension */,
  double xmul[] /* 1 dimension */,
  double f[] /* 1 dimension */,
  Integer fstate[] /* 1 dimension */,
  double fmul[] /* 1 dimension */,
  Integer REFPTR ns,
  Integer REFPTR ninf,
  double REFPTR sinf,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  CONST Integer REFPTR lencw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  char cuser[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cuser
#endif
,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_prob,
 CONST Charlen length_xnames,
 CONST Charlen length_fnames,
 CONST Charlen length_cw,
 CONST Charlen length_cuser
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vjf_(nf, n, usrfun, iafun, javar, a, lena, nea, igfun, jgvar, leng, neg, x, xlow, xupp, cw, lencw, iw, leniw, rw, lenrw, cuser, iuser, ruser, ifail, length_cw, length_cuser)  \
E04VJF(nf, n, usrfun, iafun, javar, a, lena, nea, igfun, jgvar, leng, neg, x, xlow, xupp, cw, length_cw, lencw, iw, leniw, rw, lenrw, cuser, length_cuser, iuser, ruser, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vjf_ E04VJF
#else
#define E04VJF e04vjf_
#endif
extern void NAG_CALL E04VJF(
  CONST Integer REFPTR nf,
  CONST Integer REFPTR n,
  void (NAG_CALL *usrfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          char[]
                          STDCALLLEN,
                          Integer[],
                          double[]
                          NSTDCALLLEN),
  Integer iafun[] /* 1 dimension */,
  Integer javar[] /* 1 dimension */,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR lena,
  Integer REFPTR nea,
  Integer igfun[] /* 1 dimension */,
  Integer jgvar[] /* 1 dimension */,
  CONST Integer REFPTR leng,
  Integer REFPTR neg,
  CONST double x[] /* 1 dimension */,
  CONST double xlow[] /* 1 dimension */,
  CONST double xupp[] /* 1 dimension */,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  CONST Integer REFPTR lencw,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  char cuser[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cuser
#endif
,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cw,
 CONST Charlen length_cuser
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vkf_(ispecs, cw, iw, rw, ifail, length_cw)  \
E04VKF(ispecs, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vkf_ E04VKF
#else
#define E04VKF e04vkf_
#endif
extern void NAG_CALL E04VKF(
  CONST Integer REFPTR ispecs,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vlf_(st, cw, iw, rw, ifail, length_st, length_cw)  \
E04VLF(st, length_st, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vlf_ E04VLF
#else
#define E04VLF e04vlf_
#endif
extern void NAG_CALL E04VLF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vmf_(st, ivalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04VMF(st, length_st, ivalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vmf_ E04VMF
#else
#define E04VMF e04vmf_
#endif
extern void NAG_CALL E04VMF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST Integer REFPTR ivalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vnf_(st, rvalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04VNF(st, length_st, rvalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vnf_ E04VNF
#else
#define E04VNF e04vnf_
#endif
extern void NAG_CALL E04VNF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST double REFPTR rvalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vrf_(st, ivalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04VRF(st, length_st, ivalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vrf_ E04VRF
#else
#define E04VRF e04vrf_
#endif
extern void NAG_CALL E04VRF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  Integer REFPTR ivalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04vsf_(st, rvalue, cw, iw, rw, ifail, length_st, length_cw)  \
E04VSF(st, length_st, rvalue, cw, length_cw, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04vsf_ E04VSF
#else
#define E04VSF e04vsf_
#endif
extern void NAG_CALL E04VSF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  double REFPTR rvalue,
  char cw[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cw
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st,
 CONST Charlen length_cw
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04wbf_(rname, cwsav, lcwsav, lwsav, llwsav, iwsav, liwsav, rwsav, lrwsav, ifail, length_rname, length_cwsav)  \
E04WBF(rname, length_rname, cwsav, length_cwsav, lcwsav, lwsav, llwsav, iwsav, liwsav, rwsav, lrwsav, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04wbf_ E04WBF
#else
#define E04WBF e04wbf_
#endif
extern void NAG_CALL E04WBF(
  CONST char * rname
#ifdef USE_STDCALL
,  CONST Charlen length_rname
#endif
,
  char cwsav[] /* 1 dimension */
#ifdef USE_STDCALL
,  CONST Charlen length_cwsav
#endif
,
  CONST Integer REFPTR lcwsav,
  logical lwsav[] /* 1 dimension */,
  CONST Integer REFPTR llwsav,
  Integer iwsav[] /* 1 dimension */,
  CONST Integer REFPTR liwsav,
  double rwsav[] /* 1 dimension */,
  CONST Integer REFPTR lrwsav,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_rname,
 CONST Charlen length_cwsav
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04wcf_ E04WCF
#else
#define E04WCF e04wcf_
#endif
extern void NAG_CALL E04WCF(
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04wdf_ E04WDF
#else
#define E04WDF e04wdf_
#endif
extern void NAG_CALL E04WDF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ldcj,
  CONST Integer REFPTR ldh,
  CONST double a[] /* 2 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  Integer REFPTR majits,
  Integer istate[] /* 1 dimension */,
  double ccon[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double clamda[] /* 1 dimension */,
  double REFPTR objf,
  double grad[] /* 1 dimension */,
  double h[] /* 2 dimension */,
  double x[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR leniw,
  double rw[] /* 1 dimension */,
  CONST Integer REFPTR lenrw,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04wdp_ E04WDP
#else
#define E04WDP e04wdp_
#endif
extern void NAG_CALL E04WDP(
  Integer REFPTR mode,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ldcj,
  CONST Integer needc[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  double ccon[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e04wef_ E04WEF
#else
#define E04WEF e04wef_
#endif
extern void NAG_CALL E04WEF(
  CONST Integer REFPTR ispecs,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04wff_(st, iw, rw, ifail, length_st)  \
E04WFF(st, length_st, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04wff_ E04WFF
#else
#define E04WFF e04wff_
#endif
extern void NAG_CALL E04WFF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04wgf_(st, ivalue, iw, rw, ifail, length_st)  \
E04WGF(st, length_st, ivalue, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04wgf_ E04WGF
#else
#define E04WGF e04wgf_
#endif
extern void NAG_CALL E04WGF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST Integer REFPTR ivalue,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04whf_(st, rvalue, iw, rw, ifail, length_st)  \
E04WHF(st, length_st, rvalue, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04whf_ E04WHF
#else
#define E04WHF e04whf_
#endif
extern void NAG_CALL E04WHF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  CONST double REFPTR rvalue,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04wkf_(st, ivalue, iw, rw, ifail, length_st)  \
E04WKF(st, length_st, ivalue, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04wkf_ E04WKF
#else
#define E04WKF e04wkf_
#endif
extern void NAG_CALL E04WKF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  Integer REFPTR ivalue,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e04wlf_(st, rvalue, iw, rw, ifail, length_st)  \
E04WLF(st, length_st, rvalue, iw, rw, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e04wlf_ E04WLF
#else
#define E04WLF e04wlf_
#endif
extern void NAG_CALL E04WLF(
  CONST char * st
#ifdef USE_STDCALL
,  CONST Charlen length_st
#endif
,
  double REFPTR rvalue,
  Integer iw[] /* 1 dimension */,
  double rw[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_st
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e04xaa_ E04XAA
#else
#define E04XAA e04xaa_
#endif
extern void NAG_CALL E04XAA(
  CONST Integer REFPTR msglvl,
  CONST Integer REFPTR n,
  CONST double REFPTR epsrf,
  double x[] /* 1 dimension */,
  Integer REFPTR mode,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR ldh,
  double hforw[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double hcntrl[] /* 1 dimension */,
  double h[] /* 2 dimension */,
  Integer REFPTR iwarn,
  double work[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer info[] /* 1 dimension */,
  CONST logical lwsav[] /* 1 dimension */,
  CONST Integer iwsav[] /* 1 dimension */,
  CONST double rwsav[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04xaf_ E04XAF
#else
#define E04XAF e04xaf_
#endif
extern void NAG_CALL E04XAF(
  CONST Integer REFPTR msglvl,
  CONST Integer REFPTR n,
  CONST double REFPTR epsrf,
  double x[] /* 1 dimension */,
  Integer REFPTR mode,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR ldh,
  double hforw[] /* 1 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  double hcntrl[] /* 1 dimension */,
  double h[] /* 2 dimension */,
  Integer REFPTR iwarn,
  double work[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer info[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04yaf_ E04YAF
#else
#define E04YAF e04yaf_
#endif
extern void NAG_CALL E04YAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ybf_ E04YBF
#else
#define E04YBF e04ybf_
#endif
extern void NAG_CALL E04YBF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  void (NAG_CALL *lsqfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *lsqhes)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          CONST double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          CONST Integer REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  CONST double x[] /* 1 dimension */,
  double fvec[] /* 1 dimension */,
  double fjac[] /* 2 dimension */,
  CONST Integer REFPTR ldfjac,
  double b[] /* 1 dimension */,
  CONST Integer REFPTR lb,
  Integer iw[] /* 1 dimension */,
  CONST Integer REFPTR liw,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR lw,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04ycf_ E04YCF
#else
#define E04YCF e04ycf_
#endif
extern void NAG_CALL E04YCF(
  CONST Integer REFPTR job,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR fsumsq,
  CONST double s[] /* 1 dimension */,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double cj[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04zca_ E04ZCA
#else
#define E04ZCA e04zca_
#endif
extern void NAG_CALL E04ZCA(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR ldcjac,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e04zcf_ E04ZCF
#else
#define E04ZCF e04zcf_
#endif
extern void NAG_CALL E04ZCF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncnln,
  CONST Integer REFPTR ldcjac,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ),
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  double REFPTR objf,
  double objgrd[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05jaf_ E05JAF
#else
#define E05JAF e05jaf_
#endif
extern void NAG_CALL E05JAF(
  Integer REFPTR n_r,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05jbf_ E05JBF
#else
#define E05JBF e05jbf_
#endif
extern void NAG_CALL E05JBF(
  CONST Integer REFPTR n,
  void (NAG_CALL *objfun)(
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          CONST Integer REFPTR ,
                          Integer[],
                          double[],
                          Integer REFPTR ),
  CONST Integer REFPTR ibound,
  CONST Integer REFPTR iinit,
  double bl[] /* 1 dimension */,
  double bu[] /* 1 dimension */,
  CONST Integer REFPTR sdlist,
  double list[] /* 2 dimension */,
  Integer numpts[] /* 1 dimension */,
  Integer initpt[] /* 1 dimension */,
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST Integer[],
                         CONST Integer[],
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double[],
                         CONST double[],
                         CONST Integer REFPTR ,
                         Integer[],
                         double[],
                         Integer REFPTR ),
  double x[] /* 1 dimension */,
  double REFPTR obj,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05jbk_ E05JBK
#else
#define E05JBK e05jbk_
#endif
extern void NAG_CALL E05JBK(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncall,
  CONST double xbest[] /* 1 dimension */,
  CONST Integer icount[] /* 1 dimension */,
  CONST Integer REFPTR ninit,
  CONST double list[] /* 2 dimension */,
  CONST Integer numpts[] /* 1 dimension */,
  CONST Integer initpt[] /* 1 dimension */,
  CONST Integer REFPTR nbaskt,
  CONST double xbaskt[] /* 2 dimension */,
  CONST double boxl[] /* 1 dimension */,
  CONST double boxu[] /* 1 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e05jcf_ E05JCF
#else
#define E05JCF e05jcf_
#endif
extern void NAG_CALL E05JCF(
  CONST Integer REFPTR iopts,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jdf_(optstr, comm, lcomm, ifail, length_optstr)  \
E05JDF(optstr, length_optstr, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jdf_ E05JDF
#else
#define E05JDF e05jdf_
#endif
extern void NAG_CALL E05JDF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jef_(optstr, cvalue, comm, lcomm, ifail, length_optstr, length_cvalue)  \
E05JEF(optstr, length_optstr, cvalue, length_cvalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jef_ E05JEF
#else
#define E05JEF e05jef_
#endif
extern void NAG_CALL E05JEF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  CONST char * cvalue
#ifdef USE_STDCALL
,  CONST Charlen length_cvalue
#endif
,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr,
 CONST Charlen length_cvalue
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jff_(optstr, ivalue, comm, lcomm, ifail, length_optstr)  \
E05JFF(optstr, length_optstr, ivalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jff_ E05JFF
#else
#define E05JFF e05jff_
#endif
extern void NAG_CALL E05JFF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  CONST Integer REFPTR ivalue,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jgf_(optstr, rvalue, comm, lcomm, ifail, length_optstr)  \
E05JGF(optstr, length_optstr, rvalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jgf_ E05JGF
#else
#define E05JGF e05jgf_
#endif
extern void NAG_CALL E05JGF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  CONST double REFPTR rvalue,
  double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jhf_(optstr, comm, lcomm, ifail, length_optstr)  \
E05JHF(optstr, length_optstr, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jhf_ E05JHF
#else
#define E05JHF e05jhf_
#endif
extern Integer NAG_CALL E05JHF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  CONST double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jjf_(optstr, cvalue, comm, lcomm, ifail, length_optstr, length_cvalue)  \
E05JJF(optstr, length_optstr, cvalue, length_cvalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jjf_ E05JJF
#else
#define E05JJF e05jjf_
#endif
extern void NAG_CALL E05JJF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  char * cvalue
#ifdef USE_STDCALL
,  CONST Charlen length_cvalue
#endif
,
  CONST double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr,
 CONST Charlen length_cvalue
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jkf_(optstr, ivalue, comm, lcomm, ifail, length_optstr)  \
E05JKF(optstr, length_optstr, ivalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jkf_ E05JKF
#else
#define E05JKF e05jkf_
#endif
extern void NAG_CALL E05JKF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  Integer REFPTR ivalue,
  CONST double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05jlf_(optstr, rvalue, comm, lcomm, ifail, length_optstr)  \
E05JLF(optstr, length_optstr, rvalue, comm, lcomm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05jlf_ E05JLF
#else
#define E05JLF e05jlf_
#endif
extern void NAG_CALL E05JLF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  double REFPTR rvalue,
  CONST double comm[] /* 1 dimension */,
  CONST Integer REFPTR lcomm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define e05saf_ E05SAF
#else
#define E05SAF e05saf_
#endif
extern void NAG_CALL E05SAF(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR npar,
  double xb[] /* 1 dimension */,
  double REFPTR fb,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *monmod)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          CONST double[],
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST Integer[],
                          Integer[],
                          double[],
                          Integer REFPTR ),
  Integer iopts[] /* 1 dimension */,
  double opts[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer itt[] /* 1 dimension */,
  Integer REFPTR inform,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05sbf_ E05SBF
#else
#define E05SBF e05sbf_
#endif
extern void NAG_CALL E05SBF(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR ncon,
  CONST Integer REFPTR npar,
  double xb[] /* 1 dimension */,
  double REFPTR fb,
  double cb[] /* 1 dimension */,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  double xbest[] /* 2 dimension */,
  double fbest[] /* 1 dimension */,
  double cbest[] /* 2 dimension */,
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *monmod)(
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          double[],
                          CONST double[],
                          CONST double REFPTR ,
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST double[],
                          CONST Integer[],
                          Integer[],
                          double[],
                          Integer REFPTR ),
  Integer iopts[] /* 1 dimension */,
  double opts[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer itt[] /* 1 dimension */,
  Integer REFPTR inform,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05sxm_ E05SXM
#else
#define E05SXM e05sxm_
#endif
extern void NAG_CALL E05SXM(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR npar,
  double x[] /* 2 dimension */,
  CONST double xb[] /* 1 dimension */,
  CONST double REFPTR fb,
  CONST double xbest[] /* 2 dimension */,
  CONST double fbest[] /* 1 dimension */,
  CONST Integer itt[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e05sym_ E05SYM
#else
#define E05SYM e05sym_
#endif
extern void NAG_CALL E05SYM(
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR ncon,
  CONST Integer REFPTR npar,
  double x[] /* 2 dimension */,
  CONST double xb[] /* 1 dimension */,
  CONST double REFPTR fb,
  CONST double cb[] /* 1 dimension */,
  CONST double xbest[] /* 2 dimension */,
  CONST double fbest[] /* 1 dimension */,
  CONST double cbest[] /* 2 dimension */,
  CONST Integer itt[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR inform
);
#if defined (_WIN32) || defined (_WIN64)
#define e05szm_ E05SZM
#else
#define E05SZM e05szm_
#endif
extern void NAG_CALL E05SZM(
  Integer REFPTR mode,
  CONST Integer REFPTR ncon,
  CONST Integer REFPTR ndim,
  CONST Integer REFPTR ldcj,
  CONST Integer needc[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double cjac[] /* 2 dimension */,
  CONST Integer REFPTR nstate,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define e05ucf_ E05UCF
#else
#define E05UCF e05ucf_
#endif
extern void NAG_CALL E05UCF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nclin,
  CONST Integer REFPTR ncnln,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  void (NAG_CALL *confun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST Integer[],
                          CONST double[],
                          double[],
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  void (NAG_CALL *objfun)(
                          Integer REFPTR ,
                          CONST Integer REFPTR ,
                          CONST double[],
                          double REFPTR ,
                          double[],
                          CONST Integer REFPTR ,
                          Integer[],
                          double[]),
  CONST Integer REFPTR npts,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  void (NAG_CALL *start)(
                         CONST Integer REFPTR ,
                         double[],
                         CONST Integer REFPTR ,
                         CONST logical REFPTR ,
                         CONST double[],
                         CONST double[],
                         Integer[],
                         double[],
                         Integer REFPTR ),
  CONST logical REFPTR repeat,
  CONST Integer REFPTR nb,
  double objf[] /* 1 dimension */,
  double objgrd[] /* 2 dimension */,
  CONST Integer REFPTR ldobjd,
  Integer iter[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double cjac[] /* 3 dimension */,
  CONST Integer REFPTR ldcjac,
  CONST Integer REFPTR sdcjac,
  double r[] /* 3 dimension */,
  CONST Integer REFPTR ldr,
  CONST Integer REFPTR sdr,
  double clamda[] /* 2 dimension */,
  CONST Integer REFPTR ldclda,
  Integer istate[] /* 2 dimension */,
  CONST Integer REFPTR listat,
  Integer iopts[] /* 1 dimension */,
  double opts[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer info[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define e05ucz_ E05UCZ
#else
#define E05UCZ e05ucz_
#endif
extern void NAG_CALL E05UCZ(
  CONST Integer REFPTR npts,
  double quas[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST logical REFPTR repeat,
  CONST double bl[] /* 1 dimension */,
  CONST double bu[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR mode
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05zkf_(optstr, iopts, liopts, opts, lopts, ifail, length_optstr)  \
E05ZKF(optstr, length_optstr, iopts, liopts, opts, lopts, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05zkf_ E05ZKF
#else
#define E05ZKF e05zkf_
#endif
extern void NAG_CALL E05ZKF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  Integer iopts[] /* 1 dimension */,
  CONST Integer REFPTR liopts,
  double opts[] /* 1 dimension */,
  CONST Integer REFPTR lopts,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
e05zlf_(optstr, ivalue, rvalue, cvalue, optype, iopts, opts, ifail, length_optstr, length_cvalue)  \
E05ZLF(optstr, length_optstr, ivalue, rvalue, cvalue, length_cvalue, optype, iopts, opts, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define e05zlf_ E05ZLF
#else
#define E05ZLF e05zlf_
#endif
extern void NAG_CALL E05ZLF(
  CONST char * optstr
#ifdef USE_STDCALL
,  CONST Charlen length_optstr
#endif
,
  Integer REFPTR ivalue,
  double REFPTR rvalue,
  char * cvalue
#ifdef USE_STDCALL
,  CONST Charlen length_cvalue
#endif
,
  Integer REFPTR optype,
  CONST Integer iopts[] /* 1 dimension */,
  CONST double opts[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_optstr,
 CONST Charlen length_cvalue
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01abf_ F01ABF
#else
#define F01ABF f01abf_
#endif
extern void NAG_CALL F01ABF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR n,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double z[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01adf_ F01ADF
#else
#define F01ADF f01adf_
#endif
extern void NAG_CALL F01ADF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01blf_ F01BLF
#else
#define F01BLF f01blf_
#endif
extern void NAG_CALL F01BLF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR t,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double aijmax[] /* 1 dimension */,
  Integer REFPTR irank,
  Integer inc[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double du[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01brf_ F01BRF
#else
#define F01BRF f01brf_
#endif
extern void NAG_CALL F01BRF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nz,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR licn,
  Integer irn[] /* 1 dimension */,
  CONST Integer REFPTR lirn,
  Integer icn[] /* 1 dimension */,
  CONST double REFPTR pivot,
  Integer ikeep[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST logical REFPTR lblock,
  CONST logical REFPTR grow,
  CONST logical abort[] /* 1 dimension */,
  Integer idisp[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01bsf_ F01BSF
#else
#define F01BSF f01bsf_
#endif
extern void NAG_CALL F01BSF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nz,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR licn,
  CONST Integer ivect[] /* 1 dimension */,
  CONST Integer jvect[] /* 1 dimension */,
  Integer icn[] /* 1 dimension */,
  CONST Integer ikeep[] /* 1 dimension */,
  Integer iw[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST logical REFPTR grow,
  CONST double REFPTR eta,
  double REFPTR rpmin,
  CONST logical REFPTR abort,
  CONST Integer idisp[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01buf_ F01BUF
#else
#define F01BUF f01buf_
#endif
extern void NAG_CALL F01BUF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR m1,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01bvf_ F01BVF
#else
#define F01BVF f01bvf_
#endif
extern void NAG_CALL F01BVF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ma1,
  CONST Integer REFPTR mb1,
  CONST Integer REFPTR m3,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double w[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01ckf_ F01CKF
#else
#define F01CKF f01ckf_
#endif
extern void NAG_CALL F01CKF(
  double a[] /* 2 dimension */,
  double b[] /* 2 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR n,
  CONST Integer REFPTR p,
  CONST Integer REFPTR m,
  double z[] /* 1 dimension */,
  CONST Integer REFPTR iz,
  CONST Integer REFPTR opt,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01crf_ F01CRF
#else
#define F01CRF f01crf_
#endif
extern void NAG_CALL F01CRF(
  double a[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR mn,
  Integer move[] /* 1 dimension */,
  CONST Integer REFPTR lmove,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01ctf_(transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc, ifail, length_transa, length_transb)  \
F01CTF(transa, length_transa, transb, length_transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01ctf_ F01CTF
#else
#define F01CTF f01ctf_
#endif
extern void NAG_CALL F01CTF(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01cwf_(transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc, ifail, length_transa, length_transb)  \
F01CWF(transa, length_transa, transb, length_transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01cwf_ F01CWF
#else
#define F01CWF f01cwf_
#endif
extern void NAG_CALL F01CWF(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex REFPTR beta,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01ecf_ F01ECF
#else
#define F01ECF f01ecf_
#endif
extern void NAG_CALL F01ECF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01edf_(uplo, n, a, lda, ifail, length_uplo)  \
F01EDF(uplo, length_uplo, n, a, lda, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01edf_ F01EDF
#else
#define F01EDF f01edf_
#endif
extern void NAG_CALL F01EDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01eff_(uplo, n, a, lda, f, iuser, ruser, iflag, ifail, length_uplo)  \
F01EFF(uplo, length_uplo, n, a, lda, f, iuser, ruser, iflag, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01eff_ F01EFF
#else
#define F01EFF f01eff_
#endif
extern void NAG_CALL F01EFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  void (NAG_CALL *f)(
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST double[],
                     double[],
                     Integer[],
                     double[]),
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR iflag,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01ejf_ F01EJF
#else
#define F01EJF f01ejf_
#endif
extern void NAG_CALL F01EJF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR imnorm,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01ekf_(fun, n, a, lda, imnorm, ifail, length_fun)  \
F01EKF(fun, length_fun, n, a, lda, imnorm, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01ekf_ F01EKF
#else
#define F01EKF f01ekf_
#endif
extern void NAG_CALL F01EKF(
  CONST char * fun
#ifdef USE_STDCALL
,  CONST Charlen length_fun
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR imnorm,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_fun
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01emf_ F01EMF
#else
#define F01EMF f01emf_
#endif
extern void NAG_CALL F01EMF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  void (NAG_CALL *f)(
                     CONST Integer REFPTR ,
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST Complex[],
                     Complex[],
                     Integer[],
                     double[]),
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR iflag,
  double REFPTR imnorm,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01fcf_ F01FCF
#else
#define F01FCF f01fcf_
#endif
extern void NAG_CALL F01FCF(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01fdf_(uplo, n, a, lda, ifail, length_uplo)  \
F01FDF(uplo, length_uplo, n, a, lda, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01fdf_ F01FDF
#else
#define F01FDF f01fdf_
#endif
extern void NAG_CALL F01FDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01fff_(uplo, n, a, lda, f, iuser, ruser, iflag, ifail, length_uplo)  \
F01FFF(uplo, length_uplo, n, a, lda, f, iuser, ruser, iflag, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01fff_ F01FFF
#else
#define F01FFF f01fff_
#endif
extern void NAG_CALL F01FFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  void (NAG_CALL *f)(
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST double[],
                     double[],
                     Integer[],
                     double[]),
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR iflag,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01fjf_ F01FJF
#else
#define F01FJF f01fjf_
#endif
extern void NAG_CALL F01FJF(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01fkf_(fun, n, a, lda, ifail, length_fun)  \
F01FKF(fun, length_fun, n, a, lda, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01fkf_ F01FKF
#else
#define F01FKF f01fkf_
#endif
extern void NAG_CALL F01FKF(
  CONST char * fun
#ifdef USE_STDCALL
,  CONST Charlen length_fun
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_fun
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01fmf_ F01FMF
#else
#define F01FMF f01fmf_
#endif
extern void NAG_CALL F01FMF(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  void (NAG_CALL *f)(
                     CONST Integer REFPTR ,
                     Integer REFPTR ,
                     CONST Integer REFPTR ,
                     CONST Complex[],
                     Complex[],
                     Integer[],
                     double[]),
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR iflag,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01lef_ F01LEF
#else
#define F01LEF f01lef_
#endif
extern void NAG_CALL F01LEF(
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  CONST double REFPTR lambda,
  double b[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  CONST double REFPTR tol,
  double d[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01lhf_ F01LHF
#else
#define F01LHF f01lhf_
#endif
extern void NAG_CALL F01LHF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nbloks,
  CONST Integer blkstr[] /* 2 dimension */,
  double a[] /* 1 dimension */,
  CONST Integer REFPTR lena,
  Integer pivot[] /* 1 dimension */,
  double REFPTR tol,
  Integer REFPTR kpivot,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01mcf_ F01MCF
#else
#define F01MCF f01mcf_
#endif
extern void NAG_CALL F01MCF(
  CONST Integer REFPTR n,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR lal,
  Integer nrow[] /* 1 dimension */,
  double al[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01qgf_ F01QGF
#else
#define F01QGF f01qgf_
#endif
extern void NAG_CALL F01QGF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double zeta[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01qjf_ F01QJF
#else
#define F01QJF f01qjf_
#endif
extern void NAG_CALL F01QJF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double zeta[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01qkf_(wheret, m, n, nrowp, a, lda, zeta, work, ifail, length_wheret)  \
F01QKF(wheret, length_wheret, m, n, nrowp, a, lda, zeta, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01qkf_ F01QKF
#else
#define F01QKF f01qkf_
#endif
extern void NAG_CALL F01QKF(
  CONST char * wheret
#ifdef USE_STDCALL
,  CONST Charlen length_wheret
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrowp,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double zeta[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_wheret
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f01rgf_ F01RGF
#else
#define F01RGF f01rgf_
#endif
extern void NAG_CALL F01RGF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex theta[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f01rjf_ F01RJF
#else
#define F01RJF f01rjf_
#endif
extern void NAG_CALL F01RJF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex theta[] /* 1 dimension */,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01rkf_(wheret, m, n, nrowp, a, lda, theta, work, ifail, length_wheret)  \
F01RKF(wheret, length_wheret, m, n, nrowp, a, lda, theta, work, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01rkf_ F01RKF
#else
#define F01RKF f01rkf_
#endif
extern void NAG_CALL F01RKF(
  CONST char * wheret
#ifdef USE_STDCALL
,  CONST Charlen length_wheret
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrowp,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex theta[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_wheret
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrttp_(uplo, n, a, lda, ap, info, length_uplo)  \
DTRTTP(uplo, length_uplo, n, a, lda, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrttp_ DTRTTP
#else
#define DTRTTP dtrttp_
#endif
extern void NAG_CALL DTRTTP(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vaf_(uplo, n, a, lda, ap, info, length_uplo)  \
F01VAF(uplo, length_uplo, n, a, lda, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vaf_ F01VAF
#else
#define F01VAF f01vaf_
#endif
extern void NAG_CALL F01VAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrttp_(uplo, n, a, lda, ap, info, length_uplo)  \
ZTRTTP(uplo, length_uplo, n, a, lda, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrttp_ ZTRTTP
#else
#define ZTRTTP ztrttp_
#endif
extern void NAG_CALL ZTRTTP(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vbf_(uplo, n, a, lda, ap, info, length_uplo)  \
F01VBF(uplo, length_uplo, n, a, lda, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vbf_ F01VBF
#else
#define F01VBF f01vbf_
#endif
extern void NAG_CALL F01VBF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtpttr_(uplo, n, ap, a, lda, info, length_uplo)  \
DTPTTR(uplo, length_uplo, n, ap, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtpttr_ DTPTTR
#else
#define DTPTTR dtpttr_
#endif
extern void NAG_CALL DTPTTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vcf_(uplo, n, ap, a, lda, info, length_uplo)  \
F01VCF(uplo, length_uplo, n, ap, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vcf_ F01VCF
#else
#define F01VCF f01vcf_
#endif
extern void NAG_CALL F01VCF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztpttr_(uplo, n, ap, a, lda, info, length_uplo)  \
ZTPTTR(uplo, length_uplo, n, ap, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztpttr_ ZTPTTR
#else
#define ZTPTTR ztpttr_
#endif
extern void NAG_CALL ZTPTTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vdf_(uplo, n, ap, a, lda, info, length_uplo)  \
F01VDF(uplo, length_uplo, n, ap, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vdf_ F01VDF
#else
#define F01VDF f01vdf_
#endif
extern void NAG_CALL F01VDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrttf_(transr, uplo, n, a, lda, arf, info, length_transr, length_uplo)  \
DTRTTF(transr, length_transr, uplo, length_uplo, n, a, lda, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrttf_ DTRTTF
#else
#define DTRTTF dtrttf_
#endif
extern void NAG_CALL DTRTTF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vef_(transr, uplo, n, a, lda, arf, info, length_transr, length_uplo)  \
F01VEF(transr, length_transr, uplo, length_uplo, n, a, lda, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vef_ F01VEF
#else
#define F01VEF f01vef_
#endif
extern void NAG_CALL F01VEF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrttf_(transr, uplo, n, a, lda, arf, info, length_transr, length_uplo)  \
ZTRTTF(transr, length_transr, uplo, length_uplo, n, a, lda, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrttf_ ZTRTTF
#else
#define ZTRTTF ztrttf_
#endif
extern void NAG_CALL ZTRTTF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vff_(transr, uplo, n, a, lda, arf, info, length_transr, length_uplo)  \
F01VFF(transr, length_transr, uplo, length_uplo, n, a, lda, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vff_ F01VFF
#else
#define F01VFF f01vff_
#endif
extern void NAG_CALL F01VFF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtfttr_(transr, uplo, n, arf, a, lda, info, length_transr, length_uplo)  \
DTFTTR(transr, length_transr, uplo, length_uplo, n, arf, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtfttr_ DTFTTR
#else
#define DTFTTR dtfttr_
#endif
extern void NAG_CALL DTFTTR(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double arf[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vgf_(transr, uplo, n, arf, a, lda, info, length_transr, length_uplo)  \
F01VGF(transr, length_transr, uplo, length_uplo, n, arf, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vgf_ F01VGF
#else
#define F01VGF f01vgf_
#endif
extern void NAG_CALL F01VGF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double arf[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztfttr_(transr, uplo, n, arf, a, lda, info, length_transr, length_uplo)  \
ZTFTTR(transr, length_transr, uplo, length_uplo, n, arf, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztfttr_ ZTFTTR
#else
#define ZTFTTR ztfttr_
#endif
extern void NAG_CALL ZTFTTR(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex arf[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vhf_(transr, uplo, n, arf, a, lda, info, length_transr, length_uplo)  \
F01VHF(transr, length_transr, uplo, length_uplo, n, arf, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vhf_ F01VHF
#else
#define F01VHF f01vhf_
#endif
extern void NAG_CALL F01VHF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex arf[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtpttf_(transr, uplo, n, ap, arf, info, length_transr, length_uplo)  \
DTPTTF(transr, length_transr, uplo, length_uplo, n, ap, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtpttf_ DTPTTF
#else
#define DTPTTF dtpttf_
#endif
extern void NAG_CALL DTPTTF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vjf_(transr, uplo, n, ap, arf, info, length_transr, length_uplo)  \
F01VJF(transr, length_transr, uplo, length_uplo, n, ap, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vjf_ F01VJF
#else
#define F01VJF f01vjf_
#endif
extern void NAG_CALL F01VJF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztpttf_(transr, uplo, n, ap, arf, info, length_transr, length_uplo)  \
ZTPTTF(transr, length_transr, uplo, length_uplo, n, ap, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztpttf_ ZTPTTF
#else
#define ZTPTTF ztpttf_
#endif
extern void NAG_CALL ZTPTTF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vkf_(transr, uplo, n, ap, arf, info, length_transr, length_uplo)  \
F01VKF(transr, length_transr, uplo, length_uplo, n, ap, arf, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vkf_ F01VKF
#else
#define F01VKF f01vkf_
#endif
extern void NAG_CALL F01VKF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex arf[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtfttp_(transr, uplo, n, arf, ap, info, length_transr, length_uplo)  \
DTFTTP(transr, length_transr, uplo, length_uplo, n, arf, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtfttp_ DTFTTP
#else
#define DTFTTP dtfttp_
#endif
extern void NAG_CALL DTFTTP(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double arf[] /* 1 dimension */,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vlf_(transr, uplo, n, arf, ap, info, length_transr, length_uplo)  \
F01VLF(transr, length_transr, uplo, length_uplo, n, arf, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vlf_ F01VLF
#else
#define F01VLF f01vlf_
#endif
extern void NAG_CALL F01VLF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double arf[] /* 1 dimension */,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztfttp_(transr, uplo, n, arf, ap, info, length_transr, length_uplo)  \
ZTFTTP(transr, length_transr, uplo, length_uplo, n, arf, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztfttp_ ZTFTTP
#else
#define ZTFTTP ztfttp_
#endif
extern void NAG_CALL ZTFTTP(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex arf[] /* 1 dimension */,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01vmf_(transr, uplo, n, arf, ap, info, length_transr, length_uplo)  \
F01VMF(transr, length_transr, uplo, length_uplo, n, arf, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01vmf_ F01VMF
#else
#define F01VMF f01vmf_
#endif
extern void NAG_CALL F01VMF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex arf[] /* 1 dimension */,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01zaf_(job, uplo, diag, n, a, lda, b, ifail, length_job, length_uplo, length_diag)  \
F01ZAF(job, length_job, uplo, length_uplo, diag, length_diag, n, a, lda, b, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01zaf_ F01ZAF
#else
#define F01ZAF f01zaf_
#endif
extern void NAG_CALL F01ZAF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01zbf_(job, uplo, diag, n, a, lda, b, ifail, length_job, length_uplo, length_diag)  \
F01ZBF(job, length_job, uplo, length_uplo, diag, length_diag, n, a, lda, b, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01zbf_ F01ZBF
#else
#define F01ZBF f01zbf_
#endif
extern void NAG_CALL F01ZBF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01zcf_(job, m, n, kl, ku, a, lda, b, ldb, ifail, length_job)  \
F01ZCF(job, length_job, m, n, kl, ku, a, lda, b, ldb, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01zcf_ F01ZCF
#else
#define F01ZCF f01zcf_
#endif
extern void NAG_CALL F01ZCF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f01zdf_(job, m, n, kl, ku, a, lda, b, ldb, ifail, length_job)  \
F01ZDF(job, length_job, m, n, kl, ku, a, lda, b, ldb, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f01zdf_ F01ZDF
#else
#define F01ZDF f01zdf_
#endif
extern void NAG_CALL F01ZDF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f02ecf_(crit, n, a, lda, wl, wu, mest, m, wr, wi, vr, ldvr, vi, ldvi, work, lwork, iwork, bwork, ifail, length_crit)  \
F02ECF(crit, length_crit, n, a, lda, wl, wu, mest, m, wr, wi, vr, ldvr, vi, ldvi, work, lwork, iwork, bwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f02ecf_ F02ECF
#else
#define F02ECF f02ecf_
#endif
extern void NAG_CALL F02ECF(
  CONST char * crit
#ifdef USE_STDCALL
,  CONST Charlen length_crit
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR wl,
  CONST double REFPTR wu,
  CONST Integer REFPTR mest,
  Integer REFPTR m,
  double wr[] /* 1 dimension */,
  double wi[] /* 1 dimension */,
  double vr[] /* 2 dimension */,
  CONST Integer REFPTR ldvr,
  double vi[] /* 2 dimension */,
  CONST Integer REFPTR ldvi,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  logical bwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_crit
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f02fjf_ F02FJF
#else
#define F02FJF f02fjf_
#endif
extern void NAG_CALL F02FJF(
  CONST Integer REFPTR n,
  Integer REFPTR m,
  CONST Integer REFPTR k,
  Integer REFPTR noits,
  CONST double REFPTR tol,
  double (NAG_CALL *dot)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double[],
                         double[],
                         CONST Integer REFPTR ,
                         Integer[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *image)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         double[],
                         double[],
                         CONST Integer REFPTR ,
                         Integer[],
                         CONST Integer REFPTR ),
  void (NAG_CALL *monit)(
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST double[],
                         CONST double[]),
  CONST Integer REFPTR novecs,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double d[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double ruser[] /* 1 dimension */,
  CONST Integer REFPTR lruser,
  Integer iuser[] /* 1 dimension */,
  CONST Integer REFPTR liuser,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f02fjz_ F02FJZ
#else
#define F02FJZ f02fjz_
#endif
extern void NAG_CALL F02FJZ(
  CONST Integer REFPTR istate,
  CONST Integer REFPTR nextit,
  CONST Integer REFPTR nevals,
  CONST Integer REFPTR nevecs,
  CONST Integer REFPTR k,
  CONST double f[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f02gcf_(crit, n, a, lda, wl, wu, mest, m, w, v, ldv, work, lwork, rwork, iwork, bwork, ifail, length_crit)  \
F02GCF(crit, length_crit, n, a, lda, wl, wu, mest, m, w, v, ldv, work, lwork, rwork, iwork, bwork, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f02gcf_ F02GCF
#else
#define F02GCF f02gcf_
#endif
extern void NAG_CALL F02GCF(
  CONST char * crit
#ifdef USE_STDCALL
,  CONST Charlen length_crit
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR wl,
  CONST double REFPTR wu,
  CONST Integer REFPTR mest,
  Integer REFPTR m,
  Complex w[] /* 1 dimension */,
  Complex v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  logical bwork[] /* 1 dimension */,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_crit
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f02sdf_ F02SDF
#else
#define F02SDF f02sdf_
#endif
extern void NAG_CALL F02SDF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ma1,
  CONST Integer REFPTR mb1,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST logical REFPTR sym,
  CONST double REFPTR relep,
  CONST double REFPTR rmu,
  double vec[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f02wdf_ F02WDF
#else
#define F02WDF f02wdf_
#endif
extern void NAG_CALL F02WDF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST logical REFPTR wantb,
  double b[] /* 1 dimension */,
  CONST double REFPTR tol,
  logical REFPTR svd,
  Integer REFPTR irank,
  double z[] /* 1 dimension */,
  double sv[] /* 1 dimension */,
  CONST logical REFPTR wantr,
  double r[] /* 2 dimension */,
  CONST Integer REFPTR ldr,
  CONST logical REFPTR wantpt,
  double pt[] /* 2 dimension */,
  CONST Integer REFPTR ldpt,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f02wgf_ F02WGF
#else
#define F02WGF f02wgf_
#endif
extern void NAG_CALL F02WGF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR ncv,
  void (NAG_CALL *av)(
                      Integer REFPTR ,
                      CONST Integer REFPTR ,
                      CONST Integer REFPTR ,
                      CONST double[],
                      double[],
                      Integer[],
                      double[]),
  Integer REFPTR nconv,
  double sigma[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double resid[] /* 1 dimension */,
  Integer iuser[] /* 1 dimension */,
  double ruser[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f02wuf_ F02WUF
#else
#define F02WUF f02wuf_
#endif
extern void NAG_CALL F02WUF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ncolb,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST logical REFPTR wantq,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double sv[] /* 1 dimension */,
  CONST logical REFPTR wantp,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f02xuf_ F02XUF
#else
#define F02XUF f02xuf_
#endif
extern void NAG_CALL F02XUF(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR ncolb,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST logical REFPTR wantq,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double sv[] /* 1 dimension */,
  CONST logical REFPTR wantp,
  double rwork[] /* 1 dimension */,
  Complex cwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03aaf_ F03AAF
#else
#define F03AAF f03aaf_
#endif
extern void NAG_CALL F03AAF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR n,
  double REFPTR det,
  double wkspce[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03abf_ F03ABF
#else
#define F03ABF f03abf_
#endif
extern void NAG_CALL F03ABF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR n,
  double REFPTR det,
  double wkspce[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03acf_ F03ACF
#else
#define F03ACF f03acf_
#endif
extern void NAG_CALL F03ACF(
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  double REFPTR det,
  double rl[] /* 2 dimension */,
  CONST Integer REFPTR ldrl,
  CONST Integer REFPTR m1,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03adf_ F03ADF
#else
#define F03ADF f03adf_
#endif
extern void NAG_CALL F03ADF(
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR n,
  double REFPTR detr,
  double REFPTR deti,
  double wkspce[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03aef_ F03AEF
#else
#define F03AEF f03aef_
#endif
extern void NAG_CALL F03AEF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double p[] /* 1 dimension */,
  double REFPTR d1,
  Integer REFPTR id,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03aff_ F03AFF
#else
#define F03AFF f03aff_
#endif
extern void NAG_CALL F03AFF(
  CONST Integer REFPTR n,
  CONST double REFPTR eps,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR d1,
  Integer REFPTR id,
  double p[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03baf_ F03BAF
#else
#define F03BAF f03baf_
#endif
extern void NAG_CALL F03BAF(
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double REFPTR d,
  Integer REFPTR id,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f03bff_ F03BFF
#else
#define F03BFF f03bff_
#endif
extern void NAG_CALL F03BFF(
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR d,
  Integer REFPTR id,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f03bhf_(uplo, n, kd, ab, ldab, d, id, ifail, length_uplo)  \
F03BHF(uplo, length_uplo, n, kd, ab, ldab, d, id, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f03bhf_ F03BHF
#else
#define F03BHF f03bhf_
#endif
extern void NAG_CALL F03BHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double REFPTR d,
  Integer REFPTR id,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f03bnf_ F03BNF
#else
#define F03BNF f03bnf_
#endif
extern void NAG_CALL F03BNF(
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex REFPTR d,
  Integer id[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04abf_ F04ABF
#else
#define F04ABF f04abf_
#endif
extern void NAG_CALL F04ABF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double wkspce[] /* 1 dimension */,
  double bb[] /* 2 dimension */,
  CONST Integer REFPTR ldbb,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04aef_ F04AEF
#else
#define F04AEF f04aef_
#endif
extern void NAG_CALL F04AEF(
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer REFPTR n,
  CONST Integer REFPTR m,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double wkspce[] /* 1 dimension */,
  double aa[] /* 2 dimension */,
  CONST Integer REFPTR ldaa,
  double bb[] /* 2 dimension */,
  CONST Integer REFPTR ldbb,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04aff_ F04AFF
#else
#define F04AFF f04aff_
#endif
extern void NAG_CALL F04AFF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ir,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double p[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR eps,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double bb[] /* 2 dimension */,
  CONST Integer REFPTR ldbb,
  Integer REFPTR k,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04agf_ F04AGF
#else
#define F04AGF f04agf_
#endif
extern void NAG_CALL F04AGF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ir,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double p[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx
);
#if defined (_WIN32) || defined (_WIN64)
#define f04ahf_ F04AHF
#else
#define F04AHF f04ahf_
#endif
extern void NAG_CALL F04AHF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ir,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double aa[] /* 2 dimension */,
  CONST Integer REFPTR ldaa,
  CONST double p[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR eps,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double bb[] /* 2 dimension */,
  CONST Integer REFPTR ldbb,
  Integer REFPTR k,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04ajf_ F04AJF
#else
#define F04AJF f04ajf_
#endif
extern void NAG_CALL F04AJF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR ir,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double p[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
);
#if defined (_WIN32) || defined (_WIN64)
#define f04amf_ F04AMF
#else
#define F04AMF f04amf_
#endif
extern void NAG_CALL F04AMF(
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ir,
  CONST double REFPTR eps,
  double qr[] /* 2 dimension */,
  CONST Integer REFPTR ldqr,
  double alpha[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  double z[] /* 1 dimension */,
  double r[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04asf_ F04ASF
#else
#define F04ASF f04asf_
#endif
extern void NAG_CALL F04ASF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double c[] /* 1 dimension */,
  double wk1[] /* 1 dimension */,
  double wk2[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04atf_ F04ATF
#else
#define F04ATF f04atf_
#endif
extern void NAG_CALL F04ATF(
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 1 dimension */,
  CONST Integer REFPTR n,
  double c[] /* 1 dimension */,
  double aa[] /* 2 dimension */,
  CONST Integer REFPTR ldaa,
  double wks1[] /* 1 dimension */,
  double wks2[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04axf_ F04AXF
#else
#define F04AXF f04axf_
#endif
extern void NAG_CALL F04AXF(
  CONST Integer REFPTR n,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR licn,
  CONST Integer icn[] /* 1 dimension */,
  Integer ikeep[] /* 1 dimension */,
  double rhs[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  CONST Integer REFPTR mtype,
  CONST Integer idisp[] /* 1 dimension */,
  double REFPTR resid
);
#if defined (_WIN32) || defined (_WIN64)
#define f04baf_ F04BAF
#else
#define F04BAF f04baf_
#endif
extern void NAG_CALL F04BAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04bbf_ F04BBF
#else
#define F04BBF f04bbf_
#endif
extern void NAG_CALL F04BBF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04bcf_ F04BCF
#else
#define F04BCF f04bcf_
#endif
extern void NAG_CALL F04BCF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double dl[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double du[] /* 1 dimension */,
  double du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04bdf_(uplo, n, nrhs, a, lda, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04BDF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04bdf_ F04BDF
#else
#define F04BDF f04bdf_
#endif
extern void NAG_CALL F04BDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04bef_(uplo, n, nrhs, ap, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04BEF(uplo, length_uplo, n, nrhs, ap, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04bef_ F04BEF
#else
#define F04BEF f04bef_
#endif
extern void NAG_CALL F04BEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04bff_(uplo, n, kd, nrhs, ab, ldab, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04BFF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04bff_ F04BFF
#else
#define F04BFF f04bff_
#endif
extern void NAG_CALL F04BFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f04bgf_ F04BGF
#else
#define F04BGF f04bgf_
#endif
extern void NAG_CALL F04BGF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04bhf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04BHF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04bhf_ F04BHF
#else
#define F04BHF f04bhf_
#endif
extern void NAG_CALL F04BHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04bjf_(uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04BJF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04bjf_ F04BJF
#else
#define F04BJF f04bjf_
#endif
extern void NAG_CALL F04BJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f04caf_ F04CAF
#else
#define F04CAF f04caf_
#endif
extern void NAG_CALL F04CAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04cbf_ F04CBF
#else
#define F04CBF f04cbf_
#endif
extern void NAG_CALL F04CBF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04ccf_ F04CCF
#else
#define F04CCF f04ccf_
#endif
extern void NAG_CALL F04CCF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex dl[] /* 1 dimension */,
  Complex d[] /* 1 dimension */,
  Complex du[] /* 1 dimension */,
  Complex du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04cdf_(uplo, n, nrhs, a, lda, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04CDF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04cdf_ F04CDF
#else
#define F04CDF f04cdf_
#endif
extern void NAG_CALL F04CDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04cef_(uplo, n, nrhs, ap, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04CEF(uplo, length_uplo, n, nrhs, ap, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04cef_ F04CEF
#else
#define F04CEF f04cef_
#endif
extern void NAG_CALL F04CEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04cff_(uplo, n, kd, nrhs, ab, ldab, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04CFF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04cff_ F04CFF
#else
#define F04CFF f04cff_
#endif
extern void NAG_CALL F04CFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f04cgf_ F04CGF
#else
#define F04CGF f04cgf_
#endif
extern void NAG_CALL F04CGF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  Complex e[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04chf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04CHF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04chf_ F04CHF
#else
#define F04CHF f04chf_
#endif
extern void NAG_CALL F04CHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04cjf_(uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04CJF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04cjf_ F04CJF
#else
#define F04CJF f04cjf_
#endif
extern void NAG_CALL F04CJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04dhf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04DHF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04dhf_ F04DHF
#else
#define F04DHF f04dhf_
#endif
extern void NAG_CALL F04DHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04djf_(uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail, length_uplo)  \
F04DJF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, rcond, errbnd, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04djf_ F04DJF
#else
#define F04DJF f04djf_
#endif
extern void NAG_CALL F04DJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double REFPTR rcond,
  double REFPTR errbnd,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f04fef_ F04FEF
#else
#define F04FEF f04fef_
#endif
extern void NAG_CALL F04FEF(
  CONST Integer REFPTR n,
  CONST double t[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST logical REFPTR wantp,
  double p[] /* 1 dimension */,
  CONST logical REFPTR wantv,
  double v[] /* 1 dimension */,
  double REFPTR vlast,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04fff_ F04FFF
#else
#define F04FFF f04fff_
#endif
extern void NAG_CALL F04FFF(
  CONST Integer REFPTR n,
  CONST double t[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST logical REFPTR wantp,
  double p[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04jgf_ F04JGF
#else
#define F04JGF f04jgf_
#endif
extern void NAG_CALL F04JGF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 1 dimension */,
  CONST double REFPTR tol,
  logical REFPTR svd,
  double REFPTR sigma,
  Integer REFPTR irank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04lef_ F04LEF
#else
#define F04LEF f04lef_
#endif
extern void NAG_CALL F04LEF(
  CONST Integer REFPTR job,
  CONST Integer REFPTR n,
  CONST double a[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  CONST double c[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  double REFPTR tol,
  Integer REFPTR ifail
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f04lhf_(trans, n, nbloks, blkstr, a, lena, pivot, b, ldb, ir, ifail, length_trans)  \
F04LHF(trans, length_trans, n, nbloks, blkstr, a, lena, pivot, b, ldb, ir, ifail) 
#elif defined (_WIN32) || defined (_WIN64)
#define f04lhf_ F04LHF
#else
#define F04LHF f04lhf_
#endif
extern void NAG_CALL F04LHF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nbloks,
  CONST Integer blkstr[] /* 2 dimension */,
  CONST double a[] /* 1 dimension */,
  CONST Integer REFPTR lena,
  CONST Integer pivot[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer REFPTR ir,
  Integer REFPTR ifail
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f04mcf_ F04MCF
#else
#define F04MCF f04mcf_
#endif
extern void NAG_CALL F04MCF(
  CONST Integer REFPTR n,
  CONST double al[] /* 1 dimension */,
  CONST Integer REFPTR lal,
  CONST double d[] /* 1 dimension */,
  CONST Integer nrow[] /* 1 dimension */,
  CONST Integer REFPTR ir,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Integer REFPTR iselct,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04mef_ F04MEF
#else
#define F04MEF f04mef_
#endif
extern void NAG_CALL F04MEF(
  CONST Integer REFPTR n,
  CONST double t[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR v,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04mff_ F04MFF
#else
#define F04MFF f04mff_
#endif
extern void NAG_CALL F04MFF(
  CONST Integer REFPTR n,
  CONST double t[] /* 1 dimension */,
  CONST double b[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double REFPTR p,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04qaf_ F04QAF
#else
#define F04QAF f04qaf_
#endif
extern void NAG_CALL F04QAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double b[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  double se[] /* 1 dimension */,
  void (NAG_CALL *aprod)(
                         Integer REFPTR ,
                         CONST Integer REFPTR ,
                         CONST Integer REFPTR ,
                         double[],
                         double[],
                         double[],
                         CONST Integer REFPTR ,
                         Integer[],
                         CONST Integer REFPTR ),
  CONST double REFPTR damp,
  CONST double REFPTR atol,
  CONST double REFPTR btol,
  CONST double REFPTR conlim,
  Integer REFPTR itnlim,
  CONST Integer REFPTR msglvl,
  Integer REFPTR itn,
  double REFPTR anorm,
  double REFPTR acond,
  double REFPTR rnorm,
  double REFPTR arnorm,
  double REFPTR xnorm,
  double work[] /* 2 dimension */,
  double ruser[] /* 1 dimension */,
  CONST Integer REFPTR lruser,
  Integer iuser[] /* 1 dimension */,
  CONST Integer REFPTR liuser,
  Integer REFPTR inform,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04yaf_ F04YAF
#else
#define F04YAF f04yaf_
#endif
extern void NAG_CALL F04YAF(
  CONST Integer REFPTR job,
  CONST Integer REFPTR p,
  CONST double REFPTR sigma,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST logical REFPTR svd,
  CONST Integer REFPTR irank,
  CONST double sv[] /* 1 dimension */,
  double cj[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04ycf_ F04YCF
#else
#define F04YCF f04ycf_
#endif
extern void NAG_CALL F04YCF(
  Integer REFPTR icase,
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  double REFPTR estnrm,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f04zcf_ F04ZCF
#else
#define F04ZCF f04zcf_
#endif
extern void NAG_CALL F04ZCF(
  Integer REFPTR icase,
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  double REFPTR estnrm,
  Complex work[] /* 1 dimension */,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define f05aaf_ F05AAF
#else
#define F05AAF f05aaf_
#endif
extern void NAG_CALL F05AAF(
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n1,
  CONST Integer REFPTR n2,
  double s[] /* 1 dimension */,
  double REFPTR cc,
  Integer REFPTR icol,
  Integer REFPTR ifail
);
#if defined (_WIN32) || defined (_WIN64)
#define drotg_ DROTG
#else
#define DROTG drotg_
#endif
extern void NAG_CALL DROTG(
  double REFPTR a,
  double REFPTR b,
  double REFPTR c,
  double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06aaf_ F06AAF
#else
#define F06AAF f06aaf_
#endif
extern void NAG_CALL F06AAF(
  double REFPTR a,
  double REFPTR b,
  double REFPTR c,
  double REFPTR s
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06aatn_(varnam, val, length_varnam, length_val)  \
F06AATN(varnam, length_varnam, val, length_val) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06aatn_ F06AATN
#else
#define F06AATN f06aatn_
#endif
extern void NAG_CALL F06AATN(
  CONST char * varnam
#ifdef USE_STDCALL
,  CONST Charlen length_varnam
#endif
,
  char * val
#ifdef USE_STDCALL
,  CONST Charlen length_val
#endif

#ifndef USE_STDCALL
, CONST Charlen length_varnam,
 CONST Charlen length_val
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06baf_ F06BAF
#else
#define F06BAF f06baf_
#endif
extern void NAG_CALL F06BAF(
  double REFPTR a,
  double REFPTR b,
  double REFPTR c,
  double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06bcf_ F06BCF
#else
#define F06BCF f06bcf_
#endif
extern void NAG_CALL F06BCF(
  CONST double REFPTR t,
  double REFPTR c,
  double REFPTR s
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06bef_(job, x, y, z, c, s, length_job)  \
F06BEF(job, length_job, x, y, z, c, s) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06bef_ F06BEF
#else
#define F06BEF f06bef_
#endif
extern void NAG_CALL F06BEF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  double REFPTR x,
  double REFPTR y,
  double REFPTR z,
  double REFPTR c,
  double REFPTR s
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06bhf_ F06BHF
#else
#define F06BHF f06bhf_
#endif
extern void NAG_CALL F06BHF(
  double REFPTR x,
  double REFPTR y,
  double REFPTR z,
  CONST double REFPTR c,
  CONST double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06blf_ F06BLF
#else
#define F06BLF f06blf_
#endif
extern double NAG_CALL F06BLF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  logical REFPTR fail
);
#if defined (_WIN32) || defined (_WIN64)
#define f06bmf_ F06BMF
#else
#define F06BMF f06bmf_
#endif
extern double NAG_CALL F06BMF(
  CONST double REFPTR scal,
  CONST double REFPTR ssq
);
#if defined (_WIN32) || defined (_WIN64)
#define f06bnf_ F06BNF
#else
#define F06BNF f06bnf_
#endif
extern double NAG_CALL F06BNF(
  CONST double REFPTR a,
  CONST double REFPTR b
);
#if defined (_WIN32) || defined (_WIN64)
#define f06bpf_ F06BPF
#else
#define F06BPF f06bpf_
#endif
extern double NAG_CALL F06BPF(
  CONST double REFPTR a,
  CONST double REFPTR b,
  CONST double REFPTR c
);
#if defined (_WIN32) || defined (_WIN64)
#define f06caf_ F06CAF
#else
#define F06CAF f06caf_
#endif
extern void NAG_CALL F06CAF(
  Complex REFPTR a,
  Complex REFPTR b,
  double REFPTR c,
  Complex REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06cbf_ F06CBF
#else
#define F06CBF f06cbf_
#endif
extern void NAG_CALL F06CBF(
  Complex REFPTR a,
  Complex REFPTR b,
  Complex REFPTR c,
  double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ccf_ F06CCF
#else
#define F06CCF f06ccf_
#endif
extern void NAG_CALL F06CCF(
  CONST Complex REFPTR t,
  double REFPTR c,
  Complex REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06cdf_ F06CDF
#else
#define F06CDF f06cdf_
#endif
extern void NAG_CALL F06CDF(
  CONST Complex REFPTR t,
  Complex REFPTR c,
  double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06chf_ F06CHF
#else
#define F06CHF f06chf_
#endif
extern void NAG_CALL F06CHF(
  Complex REFPTR x,
  Complex REFPTR y,
  Complex REFPTR z,
  CONST double REFPTR c,
  CONST Complex REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06clf_ F06CLF
#else
#define F06CLF f06clf_
#endif
extern COMPLEXVOID NAG_CALL F06CLF(COMPLEXRETVAL
  CONST Complex REFPTR a,
  CONST Complex REFPTR b,
  logical REFPTR fail
);
#if defined (_WIN32) || defined (_WIN64)
#define f06dbf_ F06DBF
#else
#define F06DBF f06dbf_
#endif
extern void NAG_CALL F06DBF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR con,
  Integer x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06dff_ F06DFF
#else
#define F06DFF f06dff_
#endif
extern void NAG_CALL F06DFF(
  CONST Integer REFPTR n,
  CONST Integer x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Integer y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define ddot_ DDOT
#else
#define DDOT ddot_
#endif
extern double NAG_CALL DDOT(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06eaf_ F06EAF
#else
#define F06EAF f06eaf_
#endif
extern double NAG_CALL F06EAF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define daxpy_ DAXPY
#else
#define DAXPY daxpy_
#endif
extern void NAG_CALL DAXPY(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ecf_ F06ECF
#else
#define F06ECF f06ecf_
#endif
extern void NAG_CALL F06ECF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define dscal_ DSCAL
#else
#define DSCAL dscal_
#endif
extern void NAG_CALL DSCAL(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06edf_ F06EDF
#else
#define F06EDF f06edf_
#endif
extern void NAG_CALL F06EDF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define dcopy_ DCOPY
#else
#define DCOPY dcopy_
#endif
extern void NAG_CALL DCOPY(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06eff_ F06EFF
#else
#define F06EFF f06eff_
#endif
extern void NAG_CALL F06EFF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define dswap_ DSWAP
#else
#define DSWAP dswap_
#endif
extern void NAG_CALL DSWAP(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06egf_ F06EGF
#else
#define F06EGF f06egf_
#endif
extern void NAG_CALL F06EGF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define dnrm2_ DNRM2
#else
#define DNRM2 dnrm2_
#endif
extern double NAG_CALL DNRM2(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ejf_ F06EJF
#else
#define F06EJF f06ejf_
#endif
extern double NAG_CALL F06EJF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define dasum_ DASUM
#else
#define DASUM dasum_
#endif
extern double NAG_CALL DASUM(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ekf_ F06EKF
#else
#define F06EKF f06ekf_
#endif
extern double NAG_CALL F06EKF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define drot_ DROT
#else
#define DROT drot_
#endif
extern void NAG_CALL DROT(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06epf_ F06EPF
#else
#define F06EPF f06epf_
#endif
extern void NAG_CALL F06EPF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define ddoti_ DDOTI
#else
#define DDOTI ddoti_
#endif
extern double NAG_CALL DDOTI(
  CONST Integer REFPTR nz,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06erf_ F06ERF
#else
#define F06ERF f06erf_
#endif
extern double NAG_CALL F06ERF(
  CONST Integer REFPTR nz,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define daxpyi_ DAXPYI
#else
#define DAXPYI daxpyi_
#endif
extern void NAG_CALL DAXPYI(
  CONST Integer REFPTR nz,
  CONST double REFPTR a,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06etf_ F06ETF
#else
#define F06ETF f06etf_
#endif
extern void NAG_CALL F06ETF(
  CONST Integer REFPTR nz,
  CONST double REFPTR a,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define dgthr_ DGTHR
#else
#define DGTHR dgthr_
#endif
extern void NAG_CALL DGTHR(
  CONST Integer REFPTR nz,
  CONST double y[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06euf_ F06EUF
#else
#define F06EUF f06euf_
#endif
extern void NAG_CALL F06EUF(
  CONST Integer REFPTR nz,
  CONST double y[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define dgthrz_ DGTHRZ
#else
#define DGTHRZ dgthrz_
#endif
extern void NAG_CALL DGTHRZ(
  CONST Integer REFPTR nz,
  double y[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06evf_ F06EVF
#else
#define F06EVF f06evf_
#endif
extern void NAG_CALL F06EVF(
  CONST Integer REFPTR nz,
  double y[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define dsctr_ DSCTR
#else
#define DSCTR dsctr_
#endif
extern void NAG_CALL DSCTR(
  CONST Integer REFPTR nz,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ewf_ F06EWF
#else
#define F06EWF f06ewf_
#endif
extern void NAG_CALL F06EWF(
  CONST Integer REFPTR nz,
  CONST double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define droti_ DROTI
#else
#define DROTI droti_
#endif
extern void NAG_CALL DROTI(
  CONST Integer REFPTR nz,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST double REFPTR c,
  CONST double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06exf_ F06EXF
#else
#define F06EXF f06exf_
#endif
extern void NAG_CALL F06EXF(
  CONST Integer REFPTR nz,
  double x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  double y[] /* 1 dimension */,
  CONST double REFPTR c,
  CONST double REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06faf_ F06FAF
#else
#define F06FAF f06faf_
#endif
extern double NAG_CALL F06FAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR j,
  CONST double REFPTR tolx,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR toly,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fbf_ F06FBF
#else
#define F06FBF f06fbf_
#endif
extern void NAG_CALL F06FBF(
  CONST Integer REFPTR n,
  CONST double REFPTR con,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fcf_ F06FCF
#else
#define F06FCF f06fcf_
#endif
extern void NAG_CALL F06FCF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST Integer REFPTR incd,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fdf_ F06FDF
#else
#define F06FDF f06fdf_
#endif
extern void NAG_CALL F06FDF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fef_ F06FEF
#else
#define F06FEF f06fef_
#endif
extern void NAG_CALL F06FEF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fgf_ F06FGF
#else
#define F06FGF f06fgf_
#endif
extern void NAG_CALL F06FGF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fjf_ F06FJF
#else
#define F06FJF f06fjf_
#endif
extern void NAG_CALL F06FJF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double REFPTR scal,
  double REFPTR sumsq
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fkf_ F06FKF
#else
#define F06FKF f06fkf_
#endif
extern double NAG_CALL F06FKF(
  CONST Integer REFPTR n,
  CONST double w[] /* 1 dimension */,
  CONST Integer REFPTR incw,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06flf_ F06FLF
#else
#define F06FLF f06flf_
#endif
extern void NAG_CALL F06FLF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double REFPTR xmax,
  double REFPTR xmin
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fpf_ F06FPF
#else
#define F06FPF f06fpf_
#endif
extern void NAG_CALL F06FPF(
  CONST Integer REFPTR n,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST double REFPTR s
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06fqf_(pivot, direct, n, alpha, x, incx, c, s, length_pivot, length_direct)  \
F06FQF(pivot, length_pivot, direct, length_direct, n, alpha, x, incx, c, s) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06fqf_ F06FQF
#else
#define F06FQF f06fqf_
#endif
extern void NAG_CALL F06FQF(
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06frf_ F06FRF
#else
#define F06FRF f06frf_
#endif
extern void NAG_CALL F06FRF(
  CONST Integer REFPTR n,
  double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR tol,
  double REFPTR zeta
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fsf_ F06FSF
#else
#define F06FSF f06fsf_
#endif
extern void NAG_CALL F06FSF(
  CONST Integer REFPTR n,
  double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR tol,
  double REFPTR z1
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ftf_ F06FTF
#else
#define F06FTF f06ftf_
#endif
extern void NAG_CALL F06FTF(
  CONST Integer REFPTR n,
  double REFPTR delta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR zeta,
  CONST double z[] /* 1 dimension */,
  CONST Integer REFPTR incz
);
#if defined (_WIN32) || defined (_WIN64)
#define f06fuf_ F06FUF
#else
#define F06FUF f06fuf_
#endif
extern void NAG_CALL F06FUF(
  CONST Integer REFPTR n,
  CONST double z[] /* 1 dimension */,
  CONST Integer REFPTR incz,
  CONST double REFPTR z1,
  double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define zdotu_ ZDOTU
#else
#define ZDOTU zdotu_
#endif
extern COMPLEXVOID NAG_CALL ZDOTU(COMPLEXRETVAL
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gaf_ F06GAF
#else
#define F06GAF f06gaf_
#endif
extern COMPLEXVOID NAG_CALL F06GAF(COMPLEXRETVAL
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define zdotc_ ZDOTC
#else
#define ZDOTC zdotc_
#endif
extern COMPLEXVOID NAG_CALL ZDOTC(COMPLEXRETVAL
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gbf_ F06GBF
#else
#define F06GBF f06gbf_
#endif
extern COMPLEXVOID NAG_CALL F06GBF(COMPLEXRETVAL
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define zaxpy_ ZAXPY
#else
#define ZAXPY zaxpy_
#endif
extern void NAG_CALL ZAXPY(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gcf_ F06GCF
#else
#define F06GCF f06gcf_
#endif
extern void NAG_CALL F06GCF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define zscal_ ZSCAL
#else
#define ZSCAL zscal_
#endif
extern void NAG_CALL ZSCAL(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gdf_ F06GDF
#else
#define F06GDF f06gdf_
#endif
extern void NAG_CALL F06GDF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define zcopy_ ZCOPY
#else
#define ZCOPY zcopy_
#endif
extern void NAG_CALL ZCOPY(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gff_ F06GFF
#else
#define F06GFF f06gff_
#endif
extern void NAG_CALL F06GFF(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define zswap_ ZSWAP
#else
#define ZSWAP zswap_
#endif
extern void NAG_CALL ZSWAP(
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06ggf_ F06GGF
#else
#define F06GGF f06ggf_
#endif
extern void NAG_CALL F06GGF(
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define zdotui_ ZDOTUI
#else
#define ZDOTUI zdotui_
#endif
extern COMPLEXVOID NAG_CALL ZDOTUI(COMPLEXRETVAL
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06grf_ F06GRF
#else
#define F06GRF f06grf_
#endif
extern COMPLEXVOID NAG_CALL F06GRF(COMPLEXRETVAL
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define zdotci_ ZDOTCI
#else
#define ZDOTCI zdotci_
#endif
extern COMPLEXVOID NAG_CALL ZDOTCI(COMPLEXRETVAL
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gsf_ F06GSF
#else
#define F06GSF f06gsf_
#endif
extern COMPLEXVOID NAG_CALL F06GSF(COMPLEXRETVAL
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  CONST Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define zaxpyi_ ZAXPYI
#else
#define ZAXPYI zaxpyi_
#endif
extern void NAG_CALL ZAXPYI(
  CONST Integer REFPTR nz,
  CONST Complex REFPTR a,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gtf_ F06GTF
#else
#define F06GTF f06gtf_
#endif
extern void NAG_CALL F06GTF(
  CONST Integer REFPTR nz,
  CONST Complex REFPTR a,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define zgthr_ ZGTHR
#else
#define ZGTHR zgthr_
#endif
extern void NAG_CALL ZGTHR(
  CONST Integer REFPTR nz,
  CONST Complex y[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06guf_ F06GUF
#else
#define F06GUF f06guf_
#endif
extern void NAG_CALL F06GUF(
  CONST Integer REFPTR nz,
  CONST Complex y[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define zgthrz_ ZGTHRZ
#else
#define ZGTHRZ zgthrz_
#endif
extern void NAG_CALL ZGTHRZ(
  CONST Integer REFPTR nz,
  Complex y[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gvf_ F06GVF
#else
#define F06GVF f06gvf_
#endif
extern void NAG_CALL F06GVF(
  CONST Integer REFPTR nz,
  Complex y[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define zsctr_ ZSCTR
#else
#define ZSCTR zsctr_
#endif
extern void NAG_CALL ZSCTR(
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06gwf_ F06GWF
#else
#define F06GWF f06gwf_
#endif
extern void NAG_CALL F06GWF(
  CONST Integer REFPTR nz,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer indx[] /* 1 dimension */,
  Complex y[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hbf_ F06HBF
#else
#define F06HBF f06hbf_
#endif
extern void NAG_CALL F06HBF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR con,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hcf_ F06HCF
#else
#define F06HCF f06hcf_
#endif
extern void NAG_CALL F06HCF(
  CONST Integer REFPTR n,
  CONST Complex d[] /* 1 dimension */,
  CONST Integer REFPTR incd,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hdf_ F06HDF
#else
#define F06HDF f06hdf_
#endif
extern void NAG_CALL F06HDF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hgf_ F06HGF
#else
#define F06HGF f06hgf_
#endif
extern void NAG_CALL F06HGF(
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define zrot_ ZROT
#else
#define ZROT zrot_
#endif
extern void NAG_CALL ZROT(
  CONST Integer REFPTR n,
  Complex cx[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex cy[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST Complex REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hmf_ F06HMF
#else
#define F06HMF f06hmf_
#endif
extern void NAG_CALL F06HMF(
  CONST Integer REFPTR n,
  Complex cx[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex cy[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST Complex REFPTR s
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hpf_ F06HPF
#else
#define F06HPF f06hpf_
#endif
extern void NAG_CALL F06HPF(
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST Complex REFPTR c,
  CONST Complex REFPTR s
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06hqf_(pivot, direct, n, alpha, x, incx, c, s, length_pivot, length_direct)  \
F06HQF(pivot, length_pivot, direct, length_direct, n, alpha, x, incx, c, s) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06hqf_ F06HQF
#else
#define F06HQF f06hqf_
#endif
extern void NAG_CALL F06HQF(
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06hrf_ F06HRF
#else
#define F06HRF f06hrf_
#endif
extern void NAG_CALL F06HRF(
  CONST Integer REFPTR n,
  Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR tol,
  Complex REFPTR theta
);
#if defined (_WIN32) || defined (_WIN64)
#define f06htf_ F06HTF
#else
#define F06HTF f06htf_
#endif
extern void NAG_CALL F06HTF(
  CONST Integer REFPTR n,
  Complex REFPTR delta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST Complex REFPTR theta,
  CONST Complex z[] /* 1 dimension */,
  CONST Integer REFPTR incz
);
#if defined (_WIN32) || defined (_WIN64)
#define zdscal_ ZDSCAL
#else
#define ZDSCAL zdscal_
#endif
extern void NAG_CALL ZDSCAL(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06jdf_ F06JDF
#else
#define F06JDF f06jdf_
#endif
extern void NAG_CALL F06JDF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define dznrm2_ DZNRM2
#else
#define DZNRM2 dznrm2_
#endif
extern double NAG_CALL DZNRM2(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06jjf_ F06JJF
#else
#define F06JJF f06jjf_
#endif
extern double NAG_CALL F06JJF(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define dzasum_ DZASUM
#else
#define DZASUM dzasum_
#endif
extern double NAG_CALL DZASUM(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06jkf_ F06JKF
#else
#define F06JKF f06jkf_
#endif
extern double NAG_CALL F06JKF(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define idamax_ IDAMAX
#else
#define IDAMAX idamax_
#endif
extern Integer NAG_CALL IDAMAX(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06jlf_ F06JLF
#else
#define F06JLF f06jlf_
#endif
extern Integer NAG_CALL F06JLF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define izamax_ IZAMAX
#else
#define IZAMAX izamax_
#endif
extern Integer NAG_CALL IZAMAX(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06jmf_ F06JMF
#else
#define F06JMF f06jmf_
#endif
extern Integer NAG_CALL F06JMF(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kcf_ F06KCF
#else
#define F06KCF f06kcf_
#endif
extern void NAG_CALL F06KCF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST Integer REFPTR incd,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kdf_ F06KDF
#else
#define F06KDF f06kdf_
#endif
extern void NAG_CALL F06KDF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kef_ F06KEF
#else
#define F06KEF f06kef_
#endif
extern void NAG_CALL F06KEF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kff_ F06KFF
#else
#define F06KFF f06kff_
#endif
extern void NAG_CALL F06KFF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kjf_ F06KJF
#else
#define F06KJF f06kjf_
#endif
extern void NAG_CALL F06KJF(
  CONST Integer REFPTR n,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double REFPTR scal,
  double REFPTR sumsq
);
#if defined (_WIN32) || defined (_WIN64)
#define f06klf_ F06KLF
#else
#define F06KLF f06klf_
#endif
extern Integer NAG_CALL F06KLF(
  CONST Integer REFPTR n,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR tol
);
#if defined (_WIN32) || defined (_WIN64)
#define f06kpf_ F06KPF
#else
#define F06KPF f06kpf_
#endif
extern void NAG_CALL F06KPF(
  CONST Integer REFPTR n,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  CONST double REFPTR c,
  CONST double REFPTR s
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
DGEMV(trans, length_trans, m, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgemv_ DGEMV
#else
#define DGEMV dgemv_
#endif
extern void NAG_CALL DGEMV(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06paf_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
F06PAF(trans, length_trans, m, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06paf_ F06PAF
#else
#define F06PAF f06paf_
#endif
extern void NAG_CALL F06PAF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbmv_(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
DGBMV(trans, length_trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbmv_ DGBMV
#else
#define DGBMV dgbmv_
#endif
extern void NAG_CALL DGBMV(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pbf_(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
F06PBF(trans, length_trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pbf_ F06PBF
#else
#define F06PBF f06pbf_
#endif
extern void NAG_CALL F06PBF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsymv_(uplo, n, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
DSYMV(uplo, length_uplo, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsymv_ DSYMV
#else
#define DSYMV dsymv_
#endif
extern void NAG_CALL DSYMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pcf_(uplo, n, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
F06PCF(uplo, length_uplo, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pcf_ F06PCF
#else
#define F06PCF f06pcf_
#endif
extern void NAG_CALL F06PCF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsbmv_(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
DSBMV(uplo, length_uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsbmv_ DSBMV
#else
#define DSBMV dsbmv_
#endif
extern void NAG_CALL DSBMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pdf_(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
F06PDF(uplo, length_uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pdf_ F06PDF
#else
#define F06PDF f06pdf_
#endif
extern void NAG_CALL F06PDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspmv_(uplo, n, alpha, ap, x, incx, beta, y, incy, length_uplo)  \
DSPMV(uplo, length_uplo, n, alpha, ap, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspmv_ DSPMV
#else
#define DSPMV dspmv_
#endif
extern void NAG_CALL DSPMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double ap[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pef_(uplo, n, alpha, ap, x, incx, beta, y, incy, length_uplo)  \
F06PEF(uplo, length_uplo, n, alpha, ap, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pef_ F06PEF
#else
#define F06PEF f06pef_
#endif
extern void NAG_CALL F06PEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double ap[] /* 1 dimension */,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double REFPTR beta,
  double y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrmv_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
DTRMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrmv_ DTRMV
#else
#define DTRMV dtrmv_
#endif
extern void NAG_CALL DTRMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pff_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06PFF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pff_ F06PFF
#else
#define F06PFF f06pff_
#endif
extern void NAG_CALL F06PFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtbmv_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
DTBMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtbmv_ DTBMV
#else
#define DTBMV dtbmv_
#endif
extern void NAG_CALL DTBMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pgf_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06PGF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pgf_ F06PGF
#else
#define F06PGF f06pgf_
#endif
extern void NAG_CALL F06PGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtpmv_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
DTPMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtpmv_ DTPMV
#else
#define DTPMV dtpmv_
#endif
extern void NAG_CALL DTPMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06phf_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
F06PHF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06phf_ F06PHF
#else
#define F06PHF f06phf_
#endif
extern void NAG_CALL F06PHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrsv_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
DTRSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrsv_ DTRSV
#else
#define DTRSV dtrsv_
#endif
extern void NAG_CALL DTRSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pjf_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06PJF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pjf_ F06PJF
#else
#define F06PJF f06pjf_
#endif
extern void NAG_CALL F06PJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtbsv_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
DTBSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtbsv_ DTBSV
#else
#define DTBSV dtbsv_
#endif
extern void NAG_CALL DTBSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pkf_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06PKF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pkf_ F06PKF
#else
#define F06PKF f06pkf_
#endif
extern void NAG_CALL F06PKF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtpsv_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
DTPSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtpsv_ DTPSV
#else
#define DTPSV dtpsv_
#endif
extern void NAG_CALL DTPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06plf_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
F06PLF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06plf_ F06PLF
#else
#define F06PLF f06plf_
#endif
extern void NAG_CALL F06PLF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dger_ DGER
#else
#define DGER dger_
#endif
extern void NAG_CALL DGER(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);
#if defined (_WIN32) || defined (_WIN64)
#define f06pmf_ F06PMF
#else
#define F06PMF f06pmf_
#endif
extern void NAG_CALL F06PMF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyr_(uplo, n, alpha, x, incx, a, lda, length_uplo)  \
DSYR(uplo, length_uplo, n, alpha, x, incx, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyr_ DSYR
#else
#define DSYR dsyr_
#endif
extern void NAG_CALL DSYR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ppf_(uplo, n, alpha, x, incx, a, lda, length_uplo)  \
F06PPF(uplo, length_uplo, n, alpha, x, incx, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ppf_ F06PPF
#else
#define F06PPF f06ppf_
#endif
extern void NAG_CALL F06PPF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspr_(uplo, n, alpha, x, incx, ap, length_uplo)  \
DSPR(uplo, length_uplo, n, alpha, x, incx, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspr_ DSPR
#else
#define DSPR dspr_
#endif
extern void NAG_CALL DSPR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06pqf_(uplo, n, alpha, x, incx, ap, length_uplo)  \
F06PQF(uplo, length_uplo, n, alpha, x, incx, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06pqf_ F06PQF
#else
#define F06PQF f06pqf_
#endif
extern void NAG_CALL F06PQF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyr2_(uplo, n, alpha, x, incx, y, incy, a, lda, length_uplo)  \
DSYR2(uplo, length_uplo, n, alpha, x, incx, y, incy, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyr2_ DSYR2
#else
#define DSYR2 dsyr2_
#endif
extern void NAG_CALL DSYR2(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06prf_(uplo, n, alpha, x, incx, y, incy, a, lda, length_uplo)  \
F06PRF(uplo, length_uplo, n, alpha, x, incx, y, incy, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06prf_ F06PRF
#else
#define F06PRF f06prf_
#endif
extern void NAG_CALL F06PRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspr2_(uplo, n, alpha, x, incx, y, incy, ap, length_uplo)  \
DSPR2(uplo, length_uplo, n, alpha, x, incx, y, incy, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspr2_ DSPR2
#else
#define DSPR2 dspr2_
#endif
extern void NAG_CALL DSPR2(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06psf_(uplo, n, alpha, x, incx, y, incy, ap, length_uplo)  \
F06PSF(uplo, length_uplo, n, alpha, x, incx, y, incy, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06psf_ F06PSF
#else
#define F06PSF f06psf_
#endif
extern void NAG_CALL F06PSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qff_(matrix, m, n, a, lda, b, ldb, length_matrix)  \
F06QFF(matrix, length_matrix, m, n, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qff_ F06QFF
#else
#define F06QFF f06qff_
#endif
extern void NAG_CALL F06QFF(
  CONST char * matrix
#ifdef USE_STDCALL
,  CONST Charlen length_matrix
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_matrix
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qhf_(matrix, m, n, con, diag, a, lda, length_matrix)  \
F06QHF(matrix, length_matrix, m, n, con, diag, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qhf_ F06QHF
#else
#define F06QHF f06qhf_
#endif
extern void NAG_CALL F06QHF(
  CONST char * matrix
#ifdef USE_STDCALL
,  CONST Charlen length_matrix
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR con,
  CONST double REFPTR diag,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_matrix
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qjf_(side, trans, n, perm, k, b, ldb, length_side, length_trans)  \
F06QJF(side, length_side, trans, length_trans, n, perm, k, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qjf_ F06QJF
#else
#define F06QJF f06qjf_
#endif
extern void NAG_CALL F06QJF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer perm[] /* 1 dimension */,
  CONST Integer REFPTR k,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qkf_(side, trans, n, perm, k, b, ldb, length_side, length_trans)  \
F06QKF(side, length_side, trans, length_trans, n, perm, k, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qkf_ F06QKF
#else
#define F06QKF f06qkf_
#endif
extern void NAG_CALL F06QKF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST double perm[] /* 1 dimension */,
  CONST Integer REFPTR k,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qmf_(uplo, pivot, direct, n, k1, k2, c, s, a, lda, length_uplo, length_pivot, length_direct)  \
F06QMF(uplo, length_uplo, pivot, length_pivot, direct, length_direct, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qmf_ F06QMF
#else
#define F06QMF f06qmf_
#endif
extern void NAG_CALL F06QMF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  CONST double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06qpf_ F06QPF
#else
#define F06QPF f06qpf_
#endif
extern void NAG_CALL F06QPF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST double y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06qqf_ F06QQF
#else
#define F06QQF f06qqf_
#endif
extern void NAG_CALL F06QQF(
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  double x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qrf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06QRF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qrf_ F06QRF
#else
#define F06QRF f06qrf_
#endif
extern void NAG_CALL F06QRF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qsf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06QSF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qsf_ F06QSF
#else
#define F06QSF f06qsf_
#endif
extern void NAG_CALL F06QSF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qtf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06QTF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qtf_ F06QTF
#else
#define F06QTF f06qtf_
#endif
extern void NAG_CALL F06QTF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  double c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qvf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06QVF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qvf_ F06QVF
#else
#define F06QVF f06qvf_
#endif
extern void NAG_CALL F06QVF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qwf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06QWF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qwf_ F06QWF
#else
#define F06QWF f06qwf_
#endif
extern void NAG_CALL F06QWF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06qxf_(side, pivot, direct, m, n, k1, k2, c, s, a, lda, length_side, length_pivot, length_direct)  \
F06QXF(side, length_side, pivot, length_pivot, direct, length_direct, m, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06qxf_ F06QXF
#else
#define F06QXF f06qxf_
#endif
extern void NAG_CALL F06QXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  CONST double s[] /* 1 dimension */,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06raf_(norm, m, n, a, lda, work, length_norm)  \
F06RAF(norm, length_norm, m, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06raf_ F06RAF
#else
#define F06RAF f06raf_
#endif
extern double NAG_CALL F06RAF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rbf_(norm, n, kl, ku, ab, ldab, work, length_norm)  \
F06RBF(norm, length_norm, n, kl, ku, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rbf_ F06RBF
#else
#define F06RBF f06rbf_
#endif
extern double NAG_CALL F06RBF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rcf_(norm, uplo, n, a, lda, work, length_norm, length_uplo)  \
F06RCF(norm, length_norm, uplo, length_uplo, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rcf_ F06RCF
#else
#define F06RCF f06rcf_
#endif
extern double NAG_CALL F06RCF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rdf_(norm, uplo, n, ap, work, length_norm, length_uplo)  \
F06RDF(norm, length_norm, uplo, length_uplo, n, ap, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rdf_ F06RDF
#else
#define F06RDF f06rdf_
#endif
extern double NAG_CALL F06RDF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ref_(norm, uplo, n, k, ab, ldab, work, length_norm, length_uplo)  \
F06REF(norm, length_norm, uplo, length_uplo, n, k, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ref_ F06REF
#else
#define F06REF f06ref_
#endif
extern double NAG_CALL F06REF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rjf_(norm, uplo, diag, m, n, a, lda, work, length_norm, length_uplo, length_diag)  \
F06RJF(norm, length_norm, uplo, length_uplo, diag, length_diag, m, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rjf_ F06RJF
#else
#define F06RJF f06rjf_
#endif
extern double NAG_CALL F06RJF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rkf_(norm, uplo, diag, n, ap, work, length_norm, length_uplo, length_diag)  \
F06RKF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rkf_ F06RKF
#else
#define F06RKF f06rkf_
#endif
extern double NAG_CALL F06RKF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rlf_(norm, uplo, diag, n, k, ab, ldab, work, length_norm, length_uplo, length_diag)  \
F06RLF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, k, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rlf_ F06RLF
#else
#define F06RLF f06rlf_
#endif
extern double NAG_CALL F06RLF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rmf_(norm, n, a, lda, work, length_norm)  \
F06RMF(norm, length_norm, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rmf_ F06RMF
#else
#define F06RMF f06rmf_
#endif
extern double NAG_CALL F06RMF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rnf_(norm, n, dl, d, du, length_norm)  \
F06RNF(norm, length_norm, n, dl, d, du) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rnf_ F06RNF
#else
#define F06RNF f06rnf_
#endif
extern double NAG_CALL F06RNF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06rpf_(norm, n, d, e, length_norm)  \
F06RPF(norm, length_norm, n, d, e) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06rpf_ F06RPF
#else
#define F06RPF f06rpf_
#endif
extern double NAG_CALL F06RPF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
ZGEMV(trans, length_trans, m, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgemv_ ZGEMV
#else
#define ZGEMV zgemv_
#endif
extern void NAG_CALL ZGEMV(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06saf_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
F06SAF(trans, length_trans, m, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06saf_ F06SAF
#else
#define F06SAF f06saf_
#endif
extern void NAG_CALL F06SAF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbmv_(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
ZGBMV(trans, length_trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbmv_ ZGBMV
#else
#define ZGBMV zgbmv_
#endif
extern void NAG_CALL ZGBMV(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sbf_(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy, length_trans)  \
F06SBF(trans, length_trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sbf_ F06SBF
#else
#define F06SBF f06sbf_
#endif
extern void NAG_CALL F06SBF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhemv_(uplo, n, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
ZHEMV(uplo, length_uplo, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhemv_ ZHEMV
#else
#define ZHEMV zhemv_
#endif
extern void NAG_CALL ZHEMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06scf_(uplo, n, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
F06SCF(uplo, length_uplo, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06scf_ F06SCF
#else
#define F06SCF f06scf_
#endif
extern void NAG_CALL F06SCF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhbmv_(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
ZHBMV(uplo, length_uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhbmv_ ZHBMV
#else
#define ZHBMV zhbmv_
#endif
extern void NAG_CALL ZHBMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sdf_(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
F06SDF(uplo, length_uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sdf_ F06SDF
#else
#define F06SDF f06sdf_
#endif
extern void NAG_CALL F06SDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpmv_(uplo, n, alpha, ap, x, incx, beta, y, incy, length_uplo)  \
ZHPMV(uplo, length_uplo, n, alpha, ap, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpmv_ ZHPMV
#else
#define ZHPMV zhpmv_
#endif
extern void NAG_CALL ZHPMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sef_(uplo, n, alpha, ap, x, incx, beta, y, incy, length_uplo)  \
F06SEF(uplo, length_uplo, n, alpha, ap, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sef_ F06SEF
#else
#define F06SEF f06sef_
#endif
extern void NAG_CALL F06SEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrmv_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
ZTRMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrmv_ ZTRMV
#else
#define ZTRMV ztrmv_
#endif
extern void NAG_CALL ZTRMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sff_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06SFF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sff_ F06SFF
#else
#define F06SFF f06sff_
#endif
extern void NAG_CALL F06SFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztbmv_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
ZTBMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztbmv_ ZTBMV
#else
#define ZTBMV ztbmv_
#endif
extern void NAG_CALL ZTBMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sgf_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06SGF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sgf_ F06SGF
#else
#define F06SGF f06sgf_
#endif
extern void NAG_CALL F06SGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztpmv_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
ZTPMV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztpmv_ ZTPMV
#else
#define ZTPMV ztpmv_
#endif
extern void NAG_CALL ZTPMV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06shf_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
F06SHF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06shf_ F06SHF
#else
#define F06SHF f06shf_
#endif
extern void NAG_CALL F06SHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrsv_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
ZTRSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrsv_ ZTRSV
#else
#define ZTRSV ztrsv_
#endif
extern void NAG_CALL ZTRSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sjf_(uplo, trans, diag, n, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06SJF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sjf_ F06SJF
#else
#define F06SJF f06sjf_
#endif
extern void NAG_CALL F06SJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztbsv_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
ZTBSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztbsv_ ZTBSV
#else
#define ZTBSV ztbsv_
#endif
extern void NAG_CALL ZTBSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06skf_(uplo, trans, diag, n, k, a, lda, x, incx, length_uplo, length_trans, length_diag)  \
F06SKF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, k, a, lda, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06skf_ F06SKF
#else
#define F06SKF f06skf_
#endif
extern void NAG_CALL F06SKF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztpsv_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
ZTPSV(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztpsv_ ZTPSV
#else
#define ZTPSV ztpsv_
#endif
extern void NAG_CALL ZTPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06slf_(uplo, trans, diag, n, ap, x, incx, length_uplo, length_trans, length_diag)  \
F06SLF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, ap, x, incx) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06slf_ F06SLF
#else
#define F06SLF f06slf_
#endif
extern void NAG_CALL F06SLF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeru_ ZGERU
#else
#define ZGERU zgeru_
#endif
extern void NAG_CALL ZGERU(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);
#if defined (_WIN32) || defined (_WIN64)
#define f06smf_ F06SMF
#else
#define F06SMF f06smf_
#endif
extern void NAG_CALL F06SMF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);
#if defined (_WIN32) || defined (_WIN64)
#define zgerc_ ZGERC
#else
#define ZGERC zgerc_
#endif
extern void NAG_CALL ZGERC(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);
#if defined (_WIN32) || defined (_WIN64)
#define f06snf_ F06SNF
#else
#define F06SNF f06snf_
#endif
extern void NAG_CALL F06SNF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zher_(uplo, n, alpha, x, incx, a, lda, length_uplo)  \
ZHER(uplo, length_uplo, n, alpha, x, incx, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define zher_ ZHER
#else
#define ZHER zher_
#endif
extern void NAG_CALL ZHER(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06spf_(uplo, n, alpha, x, incx, a, lda, length_uplo)  \
F06SPF(uplo, length_uplo, n, alpha, x, incx, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06spf_ F06SPF
#else
#define F06SPF f06spf_
#endif
extern void NAG_CALL F06SPF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpr_(uplo, n, alpha, x, incx, ap, length_uplo)  \
ZHPR(uplo, length_uplo, n, alpha, x, incx, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpr_ ZHPR
#else
#define ZHPR zhpr_
#endif
extern void NAG_CALL ZHPR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06sqf_(uplo, n, alpha, x, incx, ap, length_uplo)  \
F06SQF(uplo, length_uplo, n, alpha, x, incx, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06sqf_ F06SQF
#else
#define F06SQF f06sqf_
#endif
extern void NAG_CALL F06SQF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zher2_(uplo, n, alpha, x, incx, y, incy, a, lda, length_uplo)  \
ZHER2(uplo, length_uplo, n, alpha, x, incx, y, incy, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define zher2_ ZHER2
#else
#define ZHER2 zher2_
#endif
extern void NAG_CALL ZHER2(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06srf_(uplo, n, alpha, x, incx, y, incy, a, lda, length_uplo)  \
F06SRF(uplo, length_uplo, n, alpha, x, incx, y, incy, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06srf_ F06SRF
#else
#define F06SRF f06srf_
#endif
extern void NAG_CALL F06SRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpr2_(uplo, n, alpha, x, incx, y, incy, ap, length_uplo)  \
ZHPR2(uplo, length_uplo, n, alpha, x, incx, y, incy, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpr2_ ZHPR2
#else
#define ZHPR2 zhpr2_
#endif
extern void NAG_CALL ZHPR2(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ssf_(uplo, n, alpha, x, incx, y, incy, ap, length_uplo)  \
F06SSF(uplo, length_uplo, n, alpha, x, incx, y, incy, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ssf_ F06SSF
#else
#define F06SSF f06ssf_
#endif
extern void NAG_CALL F06SSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06taf_(uplo, n, alpha, a, lda, x, incx, beta, y, incy, length_uplo)  \
F06TAF(uplo, length_uplo, n, alpha, a, lda, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06taf_ F06TAF
#else
#define F06TAF f06taf_
#endif
extern void NAG_CALL F06TAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tbf_(uplo, n, alpha, x, incx, a, lda, length_uplo)  \
F06TBF(uplo, length_uplo, n, alpha, x, incx, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tbf_ F06TBF
#else
#define F06TBF f06tbf_
#endif
extern void NAG_CALL F06TBF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tcf_(uplo, n, alpha, ap, x, incx, beta, y, incy, length_uplo)  \
F06TCF(uplo, length_uplo, n, alpha, ap, x, incx, beta, y, incy) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tcf_ F06TCF
#else
#define F06TCF f06tcf_
#endif
extern void NAG_CALL F06TCF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex REFPTR beta,
  Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tdf_(uplo, n, alpha, x, incx, ap, length_uplo)  \
F06TDF(uplo, length_uplo, n, alpha, x, incx, ap) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tdf_ F06TDF
#else
#define F06TDF f06tdf_
#endif
extern void NAG_CALL F06TDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex ap[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tff_(matrix, m, n, a, lda, b, ldb, length_matrix)  \
F06TFF(matrix, length_matrix, m, n, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tff_ F06TFF
#else
#define F06TFF f06tff_
#endif
extern void NAG_CALL F06TFF(
  CONST char * matrix
#ifdef USE_STDCALL
,  CONST Charlen length_matrix
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_matrix
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06thf_(matrix, m, n, con, diag, a, lda, length_matrix)  \
F06THF(matrix, length_matrix, m, n, con, diag, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06thf_ F06THF
#else
#define F06THF f06thf_
#endif
extern void NAG_CALL F06THF(
  CONST char * matrix
#ifdef USE_STDCALL
,  CONST Charlen length_matrix
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR con,
  CONST Complex REFPTR diag,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_matrix
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tmf_(uplo, pivot, direct, n, k1, k2, c, s, a, lda, length_uplo, length_pivot, length_direct)  \
F06TMF(uplo, length_uplo, pivot, length_pivot, direct, length_direct, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tmf_ F06TMF
#else
#define F06TMF f06tmf_
#endif
extern void NAG_CALL F06TMF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  CONST Complex s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define f06tpf_ F06TPF
#else
#define F06TPF f06tpf_
#endif
extern void NAG_CALL F06TPF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  CONST Complex y[] /* 1 dimension */,
  CONST Integer REFPTR incy,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */
);
#if defined (_WIN32) || defined (_WIN64)
#define f06tqf_ F06TQF
#else
#define F06TQF f06tqf_
#endif
extern void NAG_CALL F06TQF(
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  Complex x[] /* 1 dimension */,
  CONST Integer REFPTR incx,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06trf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06TRF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06trf_ F06TRF
#else
#define F06TRF f06trf_
#endif
extern void NAG_CALL F06TRF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  Complex c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tsf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06TSF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tsf_ F06TSF
#else
#define F06TSF f06tsf_
#endif
extern void NAG_CALL F06TSF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ttf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06TTF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ttf_ F06TTF
#else
#define F06TTF f06ttf_
#endif
extern void NAG_CALL F06TTF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tvf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06TVF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tvf_ F06TVF
#else
#define F06TVF f06tvf_
#endif
extern void NAG_CALL F06TVF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST Complex c[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06twf_(side, n, k1, k2, c, s, a, lda, length_side)  \
F06TWF(side, length_side, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06twf_ F06TWF
#else
#define F06TWF f06twf_
#endif
extern void NAG_CALL F06TWF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  Complex s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06txf_(side, pivot, direct, m, n, k1, k2, c, s, a, lda, length_side, length_pivot, length_direct)  \
F06TXF(side, length_side, pivot, length_pivot, direct, length_direct, m, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06txf_ F06TXF
#else
#define F06TXF f06txf_
#endif
extern void NAG_CALL F06TXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  CONST Complex s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06tyf_(side, pivot, direct, m, n, k1, k2, c, s, a, lda, length_side, length_pivot, length_direct)  \
F06TYF(side, length_side, pivot, length_pivot, direct, length_direct, m, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06tyf_ F06TYF
#else
#define F06TYF f06tyf_
#endif
extern void NAG_CALL F06TYF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST Complex c[] /* 1 dimension */,
  CONST double s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06uaf_(norm, m, n, a, lda, work, length_norm)  \
F06UAF(norm, length_norm, m, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06uaf_ F06UAF
#else
#define F06UAF f06uaf_
#endif
extern double NAG_CALL F06UAF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ubf_(norm, n, kl, ku, ab, ldab, work, length_norm)  \
F06UBF(norm, length_norm, n, kl, ku, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ubf_ F06UBF
#else
#define F06UBF f06ubf_
#endif
extern double NAG_CALL F06UBF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ucf_(norm, uplo, n, a, lda, work, length_norm, length_uplo)  \
F06UCF(norm, length_norm, uplo, length_uplo, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ucf_ F06UCF
#else
#define F06UCF f06ucf_
#endif
extern double NAG_CALL F06UCF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06udf_(norm, uplo, n, ap, work, length_norm, length_uplo)  \
F06UDF(norm, length_norm, uplo, length_uplo, n, ap, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06udf_ F06UDF
#else
#define F06UDF f06udf_
#endif
extern double NAG_CALL F06UDF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06uef_(norm, uplo, n, k, ab, ldab, work, length_norm, length_uplo)  \
F06UEF(norm, length_norm, uplo, length_uplo, n, k, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06uef_ F06UEF
#else
#define F06UEF f06uef_
#endif
extern double NAG_CALL F06UEF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06uff_(norm, uplo, n, a, lda, work, length_norm, length_uplo)  \
F06UFF(norm, length_norm, uplo, length_uplo, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06uff_ F06UFF
#else
#define F06UFF f06uff_
#endif
extern double NAG_CALL F06UFF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ugf_(norm, uplo, n, ap, work, length_norm, length_uplo)  \
F06UGF(norm, length_norm, uplo, length_uplo, n, ap, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ugf_ F06UGF
#else
#define F06UGF f06ugf_
#endif
extern double NAG_CALL F06UGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06uhf_(norm, uplo, n, k, ab, ldab, work, length_norm, length_uplo)  \
F06UHF(norm, length_norm, uplo, length_uplo, n, k, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06uhf_ F06UHF
#else
#define F06UHF f06uhf_
#endif
extern double NAG_CALL F06UHF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ujf_(norm, uplo, diag, m, n, a, lda, work, length_norm, length_uplo, length_diag)  \
F06UJF(norm, length_norm, uplo, length_uplo, diag, length_diag, m, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ujf_ F06UJF
#else
#define F06UJF f06ujf_
#endif
extern double NAG_CALL F06UJF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ukf_(norm, uplo, diag, n, ap, work, length_norm, length_uplo, length_diag)  \
F06UKF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ukf_ F06UKF
#else
#define F06UKF f06ukf_
#endif
extern double NAG_CALL F06UKF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ulf_(norm, uplo, diag, n, k, ab, ldab, work, length_norm, length_uplo, length_diag)  \
F06ULF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, k, ab, ldab, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ulf_ F06ULF
#else
#define F06ULF f06ulf_
#endif
extern double NAG_CALL F06ULF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06umf_(norm, n, a, lda, work, length_norm)  \
F06UMF(norm, length_norm, n, a, lda, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06umf_ F06UMF
#else
#define F06UMF f06umf_
#endif
extern double NAG_CALL F06UMF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06unf_(norm, n, dl, d, du, length_norm)  \
F06UNF(norm, length_norm, n, dl, d, du) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06unf_ F06UNF
#else
#define F06UNF f06unf_
#endif
extern double NAG_CALL F06UNF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06upf_(norm, n, d, e, length_norm)  \
F06UPF(norm, length_norm, n, d, e) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06upf_ F06UPF
#else
#define F06UPF f06upf_
#endif
extern double NAG_CALL F06UPF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06vjf_(side, trans, n, perm, k, b, ldb, length_side, length_trans)  \
F06VJF(side, length_side, trans, length_trans, n, perm, k, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06vjf_ F06VJF
#else
#define F06VJF f06vjf_
#endif
extern void NAG_CALL F06VJF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer perm[] /* 1 dimension */,
  CONST Integer REFPTR k,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06vkf_(side, trans, n, perm, k, b, ldb, length_side, length_trans)  \
F06VKF(side, length_side, trans, length_trans, n, perm, k, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06vkf_ F06VKF
#else
#define F06VKF f06vkf_
#endif
extern void NAG_CALL F06VKF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST double perm[] /* 1 dimension */,
  CONST Integer REFPTR k,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06vxf_(side, pivot, direct, m, n, k1, k2, c, s, a, lda, length_side, length_pivot, length_direct)  \
F06VXF(side, length_side, pivot, length_pivot, direct, length_direct, m, n, k1, k2, c, s, a, lda) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06vxf_ F06VXF
#else
#define F06VXF f06vxf_
#endif
extern void NAG_CALL F06VXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * pivot
#ifdef USE_STDCALL
,  CONST Charlen length_pivot
#endif
,
  CONST char * direct
#ifdef USE_STDCALL
,  CONST Charlen length_direct
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k1,
  CONST Integer REFPTR k2,
  CONST double c[] /* 1 dimension */,
  CONST double s[] /* 1 dimension */,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_pivot,
 CONST Charlen length_direct
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dlansf_(norm, transr, uplo, n, a, work, length_norm, length_transr, length_uplo)  \
DLANSF(norm, length_norm, transr, length_transr, uplo, length_uplo, n, a, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define dlansf_ DLANSF
#else
#define DLANSF dlansf_
#endif
extern double NAG_CALL DLANSF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06waf_(norm, transr, uplo, n, a, work, length_norm, length_transr, length_uplo)  \
F06WAF(norm, length_norm, transr, length_transr, uplo, length_uplo, n, a, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06waf_ F06WAF
#else
#define F06WAF f06waf_
#endif
extern double NAG_CALL F06WAF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtfsm_(transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb, length_transr, length_side, length_uplo, length_trans, length_diag)  \
DTFSM(transr, length_transr, side, length_side, uplo, length_uplo, trans, length_trans, diag, length_diag, m, n, alpha, a, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtfsm_ DTFSM
#else
#define DTFSM dtfsm_
#endif
extern void NAG_CALL DTFSM(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06wbf_(transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb, length_transr, length_side, length_uplo, length_trans, length_diag)  \
F06WBF(transr, length_transr, side, length_side, uplo, length_uplo, trans, length_trans, diag, length_diag, m, n, alpha, a, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06wbf_ F06WBF
#else
#define F06WBF f06wbf_
#endif
extern void NAG_CALL F06WBF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsfrk_(transr, uplo, trans, n, k, alpha, a, lda, beta, c, length_transr, length_uplo, length_trans)  \
DSFRK(transr, length_transr, uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsfrk_ DSFRK
#else
#define DSFRK dsfrk_
#endif
extern void NAG_CALL DSFRK(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  double c[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06wcf_(transr, uplo, trans, n, k, alpha, a, lda, beta, c, length_transr, length_uplo, length_trans)  \
F06WCF(transr, length_transr, uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06wcf_ F06WCF
#else
#define F06WCF f06wcf_
#endif
extern void NAG_CALL F06WCF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  double c[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zlanhf_(norm, transr, uplo, n, a, work, length_norm, length_transr, length_uplo)  \
ZLANHF(norm, length_norm, transr, length_transr, uplo, length_uplo, n, a, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define zlanhf_ ZLANHF
#else
#define ZLANHF zlanhf_
#endif
extern double NAG_CALL ZLANHF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06wnf_(norm, transr, uplo, n, a, work, length_norm, length_transr, length_uplo)  \
F06WNF(norm, length_norm, transr, length_transr, uplo, length_uplo, n, a, work) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06wnf_ F06WNF
#else
#define F06WNF f06wnf_
#endif
extern double NAG_CALL F06WNF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 1 dimension */,
  double work[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztfsm_(transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb, length_transr, length_side, length_uplo, length_trans, length_diag)  \
ZTFSM(transr, length_transr, side, length_side, uplo, length_uplo, trans, length_trans, diag, length_diag, m, n, alpha, a, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztfsm_ ZTFSM
#else
#define ZTFSM ztfsm_
#endif
extern void NAG_CALL ZTFSM(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06wpf_(transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb, length_transr, length_side, length_uplo, length_trans, length_diag)  \
F06WPF(transr, length_transr, side, length_side, uplo, length_uplo, trans, length_trans, diag, length_diag, m, n, alpha, a, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06wpf_ F06WPF
#else
#define F06WPF f06wpf_
#endif
extern void NAG_CALL F06WPF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhfrk_(transr, uplo, trans, n, k, alpha, a, lda, beta, c, length_transr, length_uplo, length_trans)  \
ZHFRK(transr, length_transr, uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhfrk_ ZHFRK
#else
#define ZHFRK zhfrk_
#endif
extern void NAG_CALL ZHFRK(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  Complex c[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06wqf_(transr, uplo, trans, n, k, alpha, a, lda, beta, c, length_transr, length_uplo, length_trans)  \
F06WQF(transr, length_transr, uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06wqf_ F06WQF
#else
#define F06WQF f06wqf_
#endif
extern void NAG_CALL F06WQF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  Complex c[] /* 1 dimension */
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_transa, length_transb)  \
DGEMM(transa, length_transa, transb, length_transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgemm_ DGEMM
#else
#define DGEMM dgemm_
#endif
extern void NAG_CALL DGEMM(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06yaf_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_transa, length_transb)  \
F06YAF(transa, length_transa, transb, length_transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06yaf_ F06YAF
#else
#define F06YAF f06yaf_
#endif
extern void NAG_CALL F06YAF(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsymm_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
DSYMM(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsymm_ DSYMM
#else
#define DSYMM dsymm_
#endif
extern void NAG_CALL DSYMM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ycf_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
F06YCF(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ycf_ F06YCF
#else
#define F06YCF f06ycf_
#endif
extern void NAG_CALL F06YCF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrmm_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
DTRMM(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrmm_ DTRMM
#else
#define DTRMM dtrmm_
#endif
extern void NAG_CALL DTRMM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06yff_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
F06YFF(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06yff_ F06YFF
#else
#define F06YFF f06yff_
#endif
extern void NAG_CALL F06YFF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrsm_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
DTRSM(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrsm_ DTRSM
#else
#define DTRSM dtrsm_
#endif
extern void NAG_CALL DTRSM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06yjf_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
F06YJF(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06yjf_ F06YJF
#else
#define F06YJF f06yjf_
#endif
extern void NAG_CALL F06YJF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
DSYRK(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyrk_ DSYRK
#else
#define DSYRK dsyrk_
#endif
extern void NAG_CALL DSYRK(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ypf_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
F06YPF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ypf_ F06YPF
#else
#define F06YPF f06ypf_
#endif
extern void NAG_CALL F06YPF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyr2k_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
DSYR2K(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyr2k_ DSYR2K
#else
#define DSYR2K dsyr2k_
#endif
extern void NAG_CALL DSYR2K(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06yrf_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
F06YRF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06yrf_ F06YRF
#else
#define F06YRF f06yrf_
#endif
extern void NAG_CALL F06YRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_transa, length_transb)  \
ZGEMM(transa, length_transa, transb, length_transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgemm_ ZGEMM
#else
#define ZGEMM zgemm_
#endif
extern void NAG_CALL ZGEMM(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zaf_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_transa, length_transb)  \
F06ZAF(transa, length_transa, transb, length_transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zaf_ F06ZAF
#else
#define F06ZAF f06zaf_
#endif
extern void NAG_CALL F06ZAF(
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * transb
#ifdef USE_STDCALL
,  CONST Charlen length_transb
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_transa,
 CONST Charlen length_transb
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhemm_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
ZHEMM(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhemm_ ZHEMM
#else
#define ZHEMM zhemm_
#endif
extern void NAG_CALL ZHEMM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zcf_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
F06ZCF(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zcf_ F06ZCF
#else
#define F06ZCF f06zcf_
#endif
extern void NAG_CALL F06ZCF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrmm_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
ZTRMM(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrmm_ ZTRMM
#else
#define ZTRMM ztrmm_
#endif
extern void NAG_CALL ZTRMM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zff_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
F06ZFF(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zff_ F06ZFF
#else
#define F06ZFF f06zff_
#endif
extern void NAG_CALL F06ZFF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrsm_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
ZTRSM(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrsm_ ZTRSM
#else
#define ZTRSM ztrsm_
#endif
extern void NAG_CALL ZTRSM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zjf_(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb, length_side, length_uplo, length_transa, length_diag)  \
F06ZJF(side, length_side, uplo, length_uplo, transa, length_transa, diag, length_diag, m, n, alpha, a, lda, b, ldb) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zjf_ F06ZJF
#else
#define F06ZJF f06zjf_
#endif
extern void NAG_CALL F06ZJF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * transa
#ifdef USE_STDCALL
,  CONST Charlen length_transa
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_transa,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zherk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
ZHERK(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zherk_ ZHERK
#else
#define ZHERK zherk_
#endif
extern void NAG_CALL ZHERK(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zpf_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
F06ZPF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zpf_ F06ZPF
#else
#define F06ZPF f06zpf_
#endif
extern void NAG_CALL F06ZPF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST double REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zher2k_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
ZHER2K(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zher2k_ ZHER2K
#else
#define ZHER2K zher2k_
#endif
extern void NAG_CALL ZHER2K(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zrf_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
F06ZRF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zrf_ F06ZRF
#else
#define F06ZRF f06zrf_
#endif
extern void NAG_CALL F06ZRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsymm_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
ZSYMM(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsymm_ ZSYMM
#else
#define ZSYMM zsymm_
#endif
extern void NAG_CALL ZSYMM(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06ztf_(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc, length_side, length_uplo)  \
F06ZTF(side, length_side, uplo, length_uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06ztf_ F06ZTF
#else
#define F06ZTF f06ztf_
#endif
extern void NAG_CALL F06ZTF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
ZSYRK(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsyrk_ ZSYRK
#else
#define ZSYRK zsyrk_
#endif
extern void NAG_CALL ZSYRK(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zuf_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc, length_uplo, length_trans)  \
F06ZUF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zuf_ F06ZUF
#else
#define F06ZUF f06zuf_
#endif
extern void NAG_CALL F06ZUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsyr2k_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
ZSYR2K(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsyr2k_ ZSYR2K
#else
#define ZSYR2K zsyr2k_
#endif
extern void NAG_CALL ZSYR2K(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f06zwf_(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc, length_uplo, length_trans)  \
F06ZWF(uplo, length_uplo, trans, length_trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc) 
#elif defined (_WIN32) || defined (_WIN64)
#define f06zwf_ F06ZWF
#else
#define F06ZWF f06zwf_
#endif
extern void NAG_CALL F06ZWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Complex REFPTR alpha,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex REFPTR beta,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgesv_ DGESV
#else
#define DGESV dgesv_
#endif
extern void NAG_CALL DGESV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07aaf_ F07AAF
#else
#define F07AAF f07aaf_
#endif
extern void NAG_CALL F07AAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgesvx_(fact, trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans, length_equed)  \
DGESVX(fact, length_fact, trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgesvx_ DGESVX
#else
#define DGESVX dgesvx_
#endif
extern void NAG_CALL DGESVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07abf_(fact, trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans, length_equed)  \
F07ABF(fact, length_fact, trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07abf_ F07ABF
#else
#define F07ABF f07abf_
#endif
extern void NAG_CALL F07ABF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dsgesv_ DSGESV
#else
#define DSGESV dsgesv_
#endif
extern void NAG_CALL DSGESV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double work[] /* 1 dimension */,
  float swork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07acf_ F07ACF
#else
#define F07ACF f07acf_
#endif
extern void NAG_CALL F07ACF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double work[] /* 1 dimension */,
  float swork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dgetrf_ DGETRF
#else
#define DGETRF dgetrf_
#endif
extern void NAG_CALL DGETRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07adf_ F07ADF
#else
#define F07ADF f07adf_
#endif
extern void NAG_CALL F07ADF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info, length_trans)  \
DGETRS(trans, length_trans, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgetrs_ DGETRS
#else
#define DGETRS dgetrs_
#endif
extern void NAG_CALL DGETRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07aef_(trans, n, nrhs, a, lda, ipiv, b, ldb, info, length_trans)  \
F07AEF(trans, length_trans, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07aef_ F07AEF
#else
#define F07AEF f07aef_
#endif
extern void NAG_CALL F07AEF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgeequ_ DGEEQU
#else
#define DGEEQU dgeequ_
#endif
extern void NAG_CALL DGEEQU(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07aff_ F07AFF
#else
#define F07AFF f07aff_
#endif
extern void NAG_CALL F07AFF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgecon_(norm, n, a, lda, anorm, rcond, work, iwork, info, length_norm)  \
DGECON(norm, length_norm, n, a, lda, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgecon_ DGECON
#else
#define DGECON dgecon_
#endif
extern void NAG_CALL DGECON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07agf_(norm, n, a, lda, anorm, rcond, work, iwork, info, length_norm)  \
F07AGF(norm, length_norm, n, a, lda, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07agf_ F07AGF
#else
#define F07AGF f07agf_
#endif
extern void NAG_CALL F07AGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgerfs_(trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
DGERFS(trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgerfs_ DGERFS
#else
#define DGERFS dgerfs_
#endif
extern void NAG_CALL DGERFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ahf_(trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
F07AHF(trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ahf_ F07AHF
#else
#define F07AHF f07ahf_
#endif
extern void NAG_CALL F07AHF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgetri_ DGETRI
#else
#define DGETRI dgetri_
#endif
extern void NAG_CALL DGETRI(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07ajf_ F07AJF
#else
#define F07AJF f07ajf_
#endif
extern void NAG_CALL F07AJF(
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zgesv_ ZGESV
#else
#define ZGESV zgesv_
#endif
extern void NAG_CALL ZGESV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07anf_ F07ANF
#else
#define F07ANF f07anf_
#endif
extern void NAG_CALL F07ANF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgesvx_(fact, trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans, length_equed)  \
ZGESVX(fact, length_fact, trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgesvx_ ZGESVX
#else
#define ZGESVX zgesvx_
#endif
extern void NAG_CALL ZGESVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07apf_(fact, trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans, length_equed)  \
F07APF(fact, length_fact, trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07apf_ F07APF
#else
#define F07APF f07apf_
#endif
extern void NAG_CALL F07APF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zcgesv_ ZCGESV
#else
#define ZCGESV zcgesv_
#endif
extern void NAG_CALL ZCGESV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  Complex work[] /* 1 dimension */,
  Complexf swork[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07aqf_ F07AQF
#else
#define F07AQF f07aqf_
#endif
extern void NAG_CALL F07AQF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  Complex work[] /* 1 dimension */,
  Complexf swork[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zgetrf_ ZGETRF
#else
#define ZGETRF zgetrf_
#endif
extern void NAG_CALL ZGETRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07arf_ F07ARF
#else
#define F07ARF f07arf_
#endif
extern void NAG_CALL F07ARF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info, length_trans)  \
ZGETRS(trans, length_trans, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgetrs_ ZGETRS
#else
#define ZGETRS zgetrs_
#endif
extern void NAG_CALL ZGETRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07asf_(trans, n, nrhs, a, lda, ipiv, b, ldb, info, length_trans)  \
F07ASF(trans, length_trans, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07asf_ F07ASF
#else
#define F07ASF f07asf_
#endif
extern void NAG_CALL F07ASF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeequ_ ZGEEQU
#else
#define ZGEEQU zgeequ_
#endif
extern void NAG_CALL ZGEEQU(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07atf_ F07ATF
#else
#define F07ATF f07atf_
#endif
extern void NAG_CALL F07ATF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgecon_(norm, n, a, lda, anorm, rcond, work, rwork, info, length_norm)  \
ZGECON(norm, length_norm, n, a, lda, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgecon_ ZGECON
#else
#define ZGECON zgecon_
#endif
extern void NAG_CALL ZGECON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07auf_(norm, n, a, lda, anorm, rcond, work, rwork, info, length_norm)  \
F07AUF(norm, length_norm, n, a, lda, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07auf_ F07AUF
#else
#define F07AUF f07auf_
#endif
extern void NAG_CALL F07AUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgerfs_(trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
ZGERFS(trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgerfs_ ZGERFS
#else
#define ZGERFS zgerfs_
#endif
extern void NAG_CALL ZGERFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07avf_(trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
F07AVF(trans, length_trans, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07avf_ F07AVF
#else
#define F07AVF f07avf_
#endif
extern void NAG_CALL F07AVF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgetri_ ZGETRI
#else
#define ZGETRI zgetri_
#endif
extern void NAG_CALL ZGETRI(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07awf_ F07AWF
#else
#define F07AWF f07awf_
#endif
extern void NAG_CALL F07AWF(
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dgbsv_ DGBSV
#else
#define DGBSV dgbsv_
#endif
extern void NAG_CALL DGBSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07baf_ F07BAF
#else
#define F07BAF f07baf_
#endif
extern void NAG_CALL F07BAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbsvx_(fact, trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans, length_equed)  \
DGBSVX(fact, length_fact, trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbsvx_ DGBSVX
#else
#define DGBSVX dgbsvx_
#endif
extern void NAG_CALL DGBSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bbf_(fact, trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans, length_equed)  \
F07BBF(fact, length_fact, trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bbf_ F07BBF
#else
#define F07BBF f07bbf_
#endif
extern void NAG_CALL F07BBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgbtrf_ DGBTRF
#else
#define DGBTRF dgbtrf_
#endif
extern void NAG_CALL DGBTRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07bdf_ F07BDF
#else
#define F07BDF f07bdf_
#endif
extern void NAG_CALL F07BDF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbtrs_(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info, length_trans)  \
DGBTRS(trans, length_trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbtrs_ DGBTRS
#else
#define DGBTRS dgbtrs_
#endif
extern void NAG_CALL DGBTRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bef_(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info, length_trans)  \
F07BEF(trans, length_trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bef_ F07BEF
#else
#define F07BEF f07bef_
#endif
extern void NAG_CALL F07BEF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgbequ_ DGBEQU
#else
#define DGBEQU dgbequ_
#endif
extern void NAG_CALL DGBEQU(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07bff_ F07BFF
#else
#define F07BFF f07bff_
#endif
extern void NAG_CALL F07BFF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbcon_(norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, iwork, info, length_norm)  \
DGBCON(norm, length_norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbcon_ DGBCON
#else
#define DGBCON dgbcon_
#endif
extern void NAG_CALL DGBCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bgf_(norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, iwork, info, length_norm)  \
F07BGF(norm, length_norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bgf_ F07BGF
#else
#define F07BGF f07bgf_
#endif
extern void NAG_CALL F07BGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbrfs_(trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
DGBRFS(trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbrfs_ DGBRFS
#else
#define DGBRFS dgbrfs_
#endif
extern void NAG_CALL DGBRFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bhf_(trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
F07BHF(trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bhf_ F07BHF
#else
#define F07BHF f07bhf_
#endif
extern void NAG_CALL F07BHF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgbsv_ ZGBSV
#else
#define ZGBSV zgbsv_
#endif
extern void NAG_CALL ZGBSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07bnf_ F07BNF
#else
#define F07BNF f07bnf_
#endif
extern void NAG_CALL F07BNF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbsvx_(fact, trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans, length_equed)  \
ZGBSVX(fact, length_fact, trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbsvx_ ZGBSVX
#else
#define ZGBSVX zgbsvx_
#endif
extern void NAG_CALL ZGBSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bpf_(fact, trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans, length_equed)  \
F07BPF(fact, length_fact, trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, equed, length_equed, r, c, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bpf_ F07BPF
#else
#define F07BPF f07bpf_
#endif
extern void NAG_CALL F07BPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  Integer ipiv[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans,
 CONST Charlen length_equed
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgbtrf_ ZGBTRF
#else
#define ZGBTRF zgbtrf_
#endif
extern void NAG_CALL ZGBTRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07brf_ F07BRF
#else
#define F07BRF f07brf_
#endif
extern void NAG_CALL F07BRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbtrs_(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info, length_trans)  \
ZGBTRS(trans, length_trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbtrs_ ZGBTRS
#else
#define ZGBTRS zgbtrs_
#endif
extern void NAG_CALL ZGBTRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bsf_(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info, length_trans)  \
F07BSF(trans, length_trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bsf_ F07BSF
#else
#define F07BSF f07bsf_
#endif
extern void NAG_CALL F07BSF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgbequ_ ZGBEQU
#else
#define ZGBEQU zgbequ_
#endif
extern void NAG_CALL ZGBEQU(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07btf_ F07BTF
#else
#define F07BTF f07btf_
#endif
extern void NAG_CALL F07BTF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double r[] /* 1 dimension */,
  double c[] /* 1 dimension */,
  double REFPTR rowcnd,
  double REFPTR colcnd,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbcon_(norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, rwork, info, length_norm)  \
ZGBCON(norm, length_norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbcon_ ZGBCON
#else
#define ZGBCON zgbcon_
#endif
extern void NAG_CALL ZGBCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07buf_(norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, rwork, info, length_norm)  \
F07BUF(norm, length_norm, n, kl, ku, ab, ldab, ipiv, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07buf_ F07BUF
#else
#define F07BUF f07buf_
#endif
extern void NAG_CALL F07BUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbrfs_(trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
ZGBRFS(trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbrfs_ ZGBRFS
#else
#define ZGBRFS zgbrfs_
#endif
extern void NAG_CALL ZGBRFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07bvf_(trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
F07BVF(trans, length_trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07bvf_ F07BVF
#else
#define F07BVF f07bvf_
#endif
extern void NAG_CALL F07BVF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgtsv_ DGTSV
#else
#define DGTSV dgtsv_
#endif
extern void NAG_CALL DGTSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double dl[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double du[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07caf_ F07CAF
#else
#define F07CAF f07caf_
#endif
extern void NAG_CALL F07CAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double dl[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double du[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgtsvx_(fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans)  \
DGTSVX(fact, length_fact, trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgtsvx_ DGTSVX
#else
#define DGTSVX dgtsvx_
#endif
extern void NAG_CALL DGTSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  double dlf[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  double duf[] /* 1 dimension */,
  double du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cbf_(fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_trans)  \
F07CBF(fact, length_fact, trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cbf_ F07CBF
#else
#define F07CBF f07cbf_
#endif
extern void NAG_CALL F07CBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  double dlf[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  double duf[] /* 1 dimension */,
  double du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgttrf_ DGTTRF
#else
#define DGTTRF dgttrf_
#endif
extern void NAG_CALL DGTTRF(
  CONST Integer REFPTR n,
  double dl[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double du[] /* 1 dimension */,
  double du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07cdf_ F07CDF
#else
#define F07CDF f07cdf_
#endif
extern void NAG_CALL F07CDF(
  CONST Integer REFPTR n,
  double dl[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double du[] /* 1 dimension */,
  double du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgttrs_(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info, length_trans)  \
DGTTRS(trans, length_trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgttrs_ DGTTRS
#else
#define DGTTRS dgttrs_
#endif
extern void NAG_CALL DGTTRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cef_(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info, length_trans)  \
F07CEF(trans, length_trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cef_ F07CEF
#else
#define F07CEF f07cef_
#endif
extern void NAG_CALL F07CEF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgtcon_(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info, length_norm)  \
DGTCON(norm, length_norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgtcon_ DGTCON
#else
#define DGTCON dgtcon_
#endif
extern void NAG_CALL DGTCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cgf_(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info, length_norm)  \
F07CGF(norm, length_norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cgf_ F07CGF
#else
#define F07CGF f07cgf_
#endif
extern void NAG_CALL F07CGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgtrfs_(trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
DGTRFS(trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgtrfs_ DGTRFS
#else
#define DGTRFS dgtrfs_
#endif
extern void NAG_CALL DGTRFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double dlf[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST double duf[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07chf_(trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_trans)  \
F07CHF(trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07chf_ F07CHF
#else
#define F07CHF f07chf_
#endif
extern void NAG_CALL F07CHF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double dl[] /* 1 dimension */,
  CONST double d[] /* 1 dimension */,
  CONST double du[] /* 1 dimension */,
  CONST double dlf[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST double duf[] /* 1 dimension */,
  CONST double du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgtsv_ ZGTSV
#else
#define ZGTSV zgtsv_
#endif
extern void NAG_CALL ZGTSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex dl[] /* 1 dimension */,
  Complex d[] /* 1 dimension */,
  Complex du[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07cnf_ F07CNF
#else
#define F07CNF f07cnf_
#endif
extern void NAG_CALL F07CNF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex dl[] /* 1 dimension */,
  Complex d[] /* 1 dimension */,
  Complex du[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgtsvx_(fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans)  \
ZGTSVX(fact, length_fact, trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgtsvx_ ZGTSVX
#else
#define ZGTSVX zgtsvx_
#endif
extern void NAG_CALL ZGTSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  Complex dlf[] /* 1 dimension */,
  Complex df[] /* 1 dimension */,
  Complex duf[] /* 1 dimension */,
  Complex du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cpf_(fact, trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_trans)  \
F07CPF(fact, length_fact, trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cpf_ F07CPF
#else
#define F07CPF f07cpf_
#endif
extern void NAG_CALL F07CPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  Complex dlf[] /* 1 dimension */,
  Complex df[] /* 1 dimension */,
  Complex duf[] /* 1 dimension */,
  Complex du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgttrf_ ZGTTRF
#else
#define ZGTTRF zgttrf_
#endif
extern void NAG_CALL ZGTTRF(
  CONST Integer REFPTR n,
  Complex dl[] /* 1 dimension */,
  Complex d[] /* 1 dimension */,
  Complex du[] /* 1 dimension */,
  Complex du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07crf_ F07CRF
#else
#define F07CRF f07crf_
#endif
extern void NAG_CALL F07CRF(
  CONST Integer REFPTR n,
  Complex dl[] /* 1 dimension */,
  Complex d[] /* 1 dimension */,
  Complex du[] /* 1 dimension */,
  Complex du2[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgttrs_(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info, length_trans)  \
ZGTTRS(trans, length_trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgttrs_ ZGTTRS
#else
#define ZGTTRS zgttrs_
#endif
extern void NAG_CALL ZGTTRS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07csf_(trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info, length_trans)  \
F07CSF(trans, length_trans, n, nrhs, dl, d, du, du2, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07csf_ F07CSF
#else
#define F07CSF f07csf_
#endif
extern void NAG_CALL F07CSF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgtcon_(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, info, length_norm)  \
ZGTCON(norm, length_norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgtcon_ ZGTCON
#else
#define ZGTCON zgtcon_
#endif
extern void NAG_CALL ZGTCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cuf_(norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, info, length_norm)  \
F07CUF(norm, length_norm, n, dl, d, du, du2, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cuf_ F07CUF
#else
#define F07CUF f07cuf_
#endif
extern void NAG_CALL F07CUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST Integer REFPTR n,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgtrfs_(trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
ZGTRFS(trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgtrfs_ ZGTRFS
#else
#define ZGTRFS zgtrfs_
#endif
extern void NAG_CALL ZGTRFS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex dlf[] /* 1 dimension */,
  CONST Complex df[] /* 1 dimension */,
  CONST Complex duf[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07cvf_(trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_trans)  \
F07CVF(trans, length_trans, n, nrhs, dl, d, du, dlf, df, duf, du2, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07cvf_ F07CVF
#else
#define F07CVF f07cvf_
#endif
extern void NAG_CALL F07CVF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex dl[] /* 1 dimension */,
  CONST Complex d[] /* 1 dimension */,
  CONST Complex du[] /* 1 dimension */,
  CONST Complex dlf[] /* 1 dimension */,
  CONST Complex df[] /* 1 dimension */,
  CONST Complex duf[] /* 1 dimension */,
  CONST Complex du2[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dposv_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
DPOSV(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dposv_ DPOSV
#else
#define DPOSV dposv_
#endif
extern void NAG_CALL DPOSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07faf_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
F07FAF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07faf_ F07FAF
#else
#define F07FAF f07faf_
#endif
extern void NAG_CALL F07FAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dposvx_(fact, uplo, n, nrhs, a, lda, af, ldaf, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
DPOSVX(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dposvx_ DPOSVX
#else
#define DPOSVX dposvx_
#endif
extern void NAG_CALL DPOSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fbf_(fact, uplo, n, nrhs, a, lda, af, ldaf, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
F07FBF(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fbf_ F07FBF
#else
#define F07FBF f07fbf_
#endif
extern void NAG_CALL F07FBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsposv_(uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, iter, info, length_uplo)  \
DSPOSV(uplo, length_uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, iter, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsposv_ DSPOSV
#else
#define DSPOSV dsposv_
#endif
extern void NAG_CALL DSPOSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double work[] /* 2 dimension */,
  float swork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fcf_(uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, iter, info, length_uplo)  \
F07FCF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, iter, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fcf_ F07FCF
#else
#define F07FCF f07fcf_
#endif
extern void NAG_CALL F07FCF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double work[] /* 2 dimension */,
  float swork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpotrf_(uplo, n, a, lda, info, length_uplo)  \
DPOTRF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpotrf_ DPOTRF
#else
#define DPOTRF dpotrf_
#endif
extern void NAG_CALL DPOTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fdf_(uplo, n, a, lda, info, length_uplo)  \
F07FDF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fdf_ F07FDF
#else
#define F07FDF f07fdf_
#endif
extern void NAG_CALL F07FDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpotrs_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
DPOTRS(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpotrs_ DPOTRS
#else
#define DPOTRS dpotrs_
#endif
extern void NAG_CALL DPOTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fef_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
F07FEF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fef_ F07FEF
#else
#define F07FEF f07fef_
#endif
extern void NAG_CALL F07FEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dpoequ_ DPOEQU
#else
#define DPOEQU dpoequ_
#endif
extern void NAG_CALL DPOEQU(
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07fff_ F07FFF
#else
#define F07FFF f07fff_
#endif
extern void NAG_CALL F07FFF(
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpocon_(uplo, n, a, lda, anorm, rcond, work, iwork, info, length_uplo)  \
DPOCON(uplo, length_uplo, n, a, lda, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpocon_ DPOCON
#else
#define DPOCON dpocon_
#endif
extern void NAG_CALL DPOCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fgf_(uplo, n, a, lda, anorm, rcond, work, iwork, info, length_uplo)  \
F07FGF(uplo, length_uplo, n, a, lda, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fgf_ F07FGF
#else
#define F07FGF f07fgf_
#endif
extern void NAG_CALL F07FGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dporfs_(uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
DPORFS(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dporfs_ DPORFS
#else
#define DPORFS dporfs_
#endif
extern void NAG_CALL DPORFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fhf_(uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
F07FHF(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fhf_ F07FHF
#else
#define F07FHF f07fhf_
#endif
extern void NAG_CALL F07FHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpotri_(uplo, n, a, lda, info, length_uplo)  \
DPOTRI(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpotri_ DPOTRI
#else
#define DPOTRI dpotri_
#endif
extern void NAG_CALL DPOTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fjf_(uplo, n, a, lda, info, length_uplo)  \
F07FJF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fjf_ F07FJF
#else
#define F07FJF f07fjf_
#endif
extern void NAG_CALL F07FJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zposv_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
ZPOSV(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zposv_ ZPOSV
#else
#define ZPOSV zposv_
#endif
extern void NAG_CALL ZPOSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fnf_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
F07FNF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fnf_ F07FNF
#else
#define F07FNF f07fnf_
#endif
extern void NAG_CALL F07FNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zposvx_(fact, uplo, n, nrhs, a, lda, af, ldaf, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
ZPOSVX(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zposvx_ ZPOSVX
#else
#define ZPOSVX zposvx_
#endif
extern void NAG_CALL ZPOSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fpf_(fact, uplo, n, nrhs, a, lda, af, ldaf, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
F07FPF(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fpf_ F07FPF
#else
#define F07FPF f07fpf_
#endif
extern void NAG_CALL F07FPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zcposv_(uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, rwork, iter, info, length_uplo)  \
ZCPOSV(uplo, length_uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, rwork, iter, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zcposv_ ZCPOSV
#else
#define ZCPOSV zcposv_
#endif
extern void NAG_CALL ZCPOSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  Complex work[] /* 2 dimension */,
  Complexf swork[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fqf_(uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, rwork, iter, info, length_uplo)  \
F07FQF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, x, ldx, work, swork, rwork, iter, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fqf_ F07FQF
#else
#define F07FQF f07fqf_
#endif
extern void NAG_CALL F07FQF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  Complex work[] /* 2 dimension */,
  Complexf swork[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR iter,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpotrf_(uplo, n, a, lda, info, length_uplo)  \
ZPOTRF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpotrf_ ZPOTRF
#else
#define ZPOTRF zpotrf_
#endif
extern void NAG_CALL ZPOTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07frf_(uplo, n, a, lda, info, length_uplo)  \
F07FRF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07frf_ F07FRF
#else
#define F07FRF f07frf_
#endif
extern void NAG_CALL F07FRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpotrs_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
ZPOTRS(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpotrs_ ZPOTRS
#else
#define ZPOTRS zpotrs_
#endif
extern void NAG_CALL ZPOTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fsf_(uplo, n, nrhs, a, lda, b, ldb, info, length_uplo)  \
F07FSF(uplo, length_uplo, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fsf_ F07FSF
#else
#define F07FSF f07fsf_
#endif
extern void NAG_CALL F07FSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zpoequ_ ZPOEQU
#else
#define ZPOEQU zpoequ_
#endif
extern void NAG_CALL ZPOEQU(
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07ftf_ F07FTF
#else
#define F07FTF f07ftf_
#endif
extern void NAG_CALL F07FTF(
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpocon_(uplo, n, a, lda, anorm, rcond, work, rwork, info, length_uplo)  \
ZPOCON(uplo, length_uplo, n, a, lda, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpocon_ ZPOCON
#else
#define ZPOCON zpocon_
#endif
extern void NAG_CALL ZPOCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fuf_(uplo, n, a, lda, anorm, rcond, work, rwork, info, length_uplo)  \
F07FUF(uplo, length_uplo, n, a, lda, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fuf_ F07FUF
#else
#define F07FUF f07fuf_
#endif
extern void NAG_CALL F07FUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zporfs_(uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZPORFS(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zporfs_ ZPORFS
#else
#define ZPORFS zporfs_
#endif
extern void NAG_CALL ZPORFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fvf_(uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07FVF(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fvf_ F07FVF
#else
#define F07FVF f07fvf_
#endif
extern void NAG_CALL F07FVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpotri_(uplo, n, a, lda, info, length_uplo)  \
ZPOTRI(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpotri_ ZPOTRI
#else
#define ZPOTRI zpotri_
#endif
extern void NAG_CALL ZPOTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07fwf_(uplo, n, a, lda, info, length_uplo)  \
F07FWF(uplo, length_uplo, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07fwf_ F07FWF
#else
#define F07FWF f07fwf_
#endif
extern void NAG_CALL F07FWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dppsv_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
DPPSV(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dppsv_ DPPSV
#else
#define DPPSV dppsv_
#endif
extern void NAG_CALL DPPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gaf_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
F07GAF(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gaf_ F07GAF
#else
#define F07GAF f07gaf_
#endif
extern void NAG_CALL F07GAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dppsvx_(fact, uplo, n, nrhs, ap, afp, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
DPPSVX(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dppsvx_ DPPSVX
#else
#define DPPSVX dppsvx_
#endif
extern void NAG_CALL DPPSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  double afp[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gbf_(fact, uplo, n, nrhs, ap, afp, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
F07GBF(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gbf_ F07GBF
#else
#define F07GBF f07gbf_
#endif
extern void NAG_CALL F07GBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  double afp[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpptrf_(uplo, n, ap, info, length_uplo)  \
DPPTRF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpptrf_ DPPTRF
#else
#define DPPTRF dpptrf_
#endif
extern void NAG_CALL DPPTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gdf_(uplo, n, ap, info, length_uplo)  \
F07GDF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gdf_ F07GDF
#else
#define F07GDF f07gdf_
#endif
extern void NAG_CALL F07GDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpptrs_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
DPPTRS(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpptrs_ DPPTRS
#else
#define DPPTRS dpptrs_
#endif
extern void NAG_CALL DPPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gef_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
F07GEF(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gef_ F07GEF
#else
#define F07GEF f07gef_
#endif
extern void NAG_CALL F07GEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dppequ_(uplo, n, ap, s, scond, amax, info, length_uplo)  \
DPPEQU(uplo, length_uplo, n, ap, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dppequ_ DPPEQU
#else
#define DPPEQU dppequ_
#endif
extern void NAG_CALL DPPEQU(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gff_(uplo, n, ap, s, scond, amax, info, length_uplo)  \
F07GFF(uplo, length_uplo, n, ap, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gff_ F07GFF
#else
#define F07GFF f07gff_
#endif
extern void NAG_CALL F07GFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dppcon_(uplo, n, ap, anorm, rcond, work, iwork, info, length_uplo)  \
DPPCON(uplo, length_uplo, n, ap, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dppcon_ DPPCON
#else
#define DPPCON dppcon_
#endif
extern void NAG_CALL DPPCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ggf_(uplo, n, ap, anorm, rcond, work, iwork, info, length_uplo)  \
F07GGF(uplo, length_uplo, n, ap, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ggf_ F07GGF
#else
#define F07GGF f07ggf_
#endif
extern void NAG_CALL F07GGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpprfs_(uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
DPPRFS(uplo, length_uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpprfs_ DPPRFS
#else
#define DPPRFS dpprfs_
#endif
extern void NAG_CALL DPPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double afp[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ghf_(uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
F07GHF(uplo, length_uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ghf_ F07GHF
#else
#define F07GHF f07ghf_
#endif
extern void NAG_CALL F07GHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double afp[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpptri_(uplo, n, ap, info, length_uplo)  \
DPPTRI(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpptri_ DPPTRI
#else
#define DPPTRI dpptri_
#endif
extern void NAG_CALL DPPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gjf_(uplo, n, ap, info, length_uplo)  \
F07GJF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gjf_ F07GJF
#else
#define F07GJF f07gjf_
#endif
extern void NAG_CALL F07GJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zppsv_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
ZPPSV(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zppsv_ ZPPSV
#else
#define ZPPSV zppsv_
#endif
extern void NAG_CALL ZPPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gnf_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
F07GNF(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gnf_ F07GNF
#else
#define F07GNF f07gnf_
#endif
extern void NAG_CALL F07GNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zppsvx_(fact, uplo, n, nrhs, ap, afp, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
ZPPSVX(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zppsvx_ ZPPSVX
#else
#define ZPPSVX zppsvx_
#endif
extern void NAG_CALL ZPPSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gpf_(fact, uplo, n, nrhs, ap, afp, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
F07GPF(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gpf_ F07GPF
#else
#define F07GPF f07gpf_
#endif
extern void NAG_CALL F07GPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpptrf_(uplo, n, ap, info, length_uplo)  \
ZPPTRF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpptrf_ ZPPTRF
#else
#define ZPPTRF zpptrf_
#endif
extern void NAG_CALL ZPPTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07grf_(uplo, n, ap, info, length_uplo)  \
F07GRF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07grf_ F07GRF
#else
#define F07GRF f07grf_
#endif
extern void NAG_CALL F07GRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpptrs_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
ZPPTRS(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpptrs_ ZPPTRS
#else
#define ZPPTRS zpptrs_
#endif
extern void NAG_CALL ZPPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gsf_(uplo, n, nrhs, ap, b, ldb, info, length_uplo)  \
F07GSF(uplo, length_uplo, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gsf_ F07GSF
#else
#define F07GSF f07gsf_
#endif
extern void NAG_CALL F07GSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zppequ_(uplo, n, ap, s, scond, amax, info, length_uplo)  \
ZPPEQU(uplo, length_uplo, n, ap, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zppequ_ ZPPEQU
#else
#define ZPPEQU zppequ_
#endif
extern void NAG_CALL ZPPEQU(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gtf_(uplo, n, ap, s, scond, amax, info, length_uplo)  \
F07GTF(uplo, length_uplo, n, ap, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gtf_ F07GTF
#else
#define F07GTF f07gtf_
#endif
extern void NAG_CALL F07GTF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zppcon_(uplo, n, ap, anorm, rcond, work, rwork, info, length_uplo)  \
ZPPCON(uplo, length_uplo, n, ap, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zppcon_ ZPPCON
#else
#define ZPPCON zppcon_
#endif
extern void NAG_CALL ZPPCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07guf_(uplo, n, ap, anorm, rcond, work, rwork, info, length_uplo)  \
F07GUF(uplo, length_uplo, n, ap, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07guf_ F07GUF
#else
#define F07GUF f07guf_
#endif
extern void NAG_CALL F07GUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpprfs_(uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZPPRFS(uplo, length_uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpprfs_ ZPPRFS
#else
#define ZPPRFS zpprfs_
#endif
extern void NAG_CALL ZPPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gvf_(uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07GVF(uplo, length_uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gvf_ F07GVF
#else
#define F07GVF f07gvf_
#endif
extern void NAG_CALL F07GVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpptri_(uplo, n, ap, info, length_uplo)  \
ZPPTRI(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpptri_ ZPPTRI
#else
#define ZPPTRI zpptri_
#endif
extern void NAG_CALL ZPPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07gwf_(uplo, n, ap, info, length_uplo)  \
F07GWF(uplo, length_uplo, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07gwf_ F07GWF
#else
#define F07GWF f07gwf_
#endif
extern void NAG_CALL F07GWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbsv_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
DPBSV(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbsv_ DPBSV
#else
#define DPBSV dpbsv_
#endif
extern void NAG_CALL DPBSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07haf_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
F07HAF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07haf_ F07HAF
#else
#define F07HAF f07haf_
#endif
extern void NAG_CALL F07HAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbsvx_(fact, uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
DPBSVX(fact, length_fact, uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbsvx_ DPBSVX
#else
#define DPBSVX dpbsvx_
#endif
extern void NAG_CALL DPBSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hbf_(fact, uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo, length_equed)  \
F07HBF(fact, length_fact, uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hbf_ F07HBF
#else
#define F07HBF f07hbf_
#endif
extern void NAG_CALL F07HBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbtrf_(uplo, n, kd, ab, ldab, info, length_uplo)  \
DPBTRF(uplo, length_uplo, n, kd, ab, ldab, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbtrf_ DPBTRF
#else
#define DPBTRF dpbtrf_
#endif
extern void NAG_CALL DPBTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hdf_(uplo, n, kd, ab, ldab, info, length_uplo)  \
F07HDF(uplo, length_uplo, n, kd, ab, ldab, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hdf_ F07HDF
#else
#define F07HDF f07hdf_
#endif
extern void NAG_CALL F07HDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbtrs_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
DPBTRS(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbtrs_ DPBTRS
#else
#define DPBTRS dpbtrs_
#endif
extern void NAG_CALL DPBTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hef_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
F07HEF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hef_ F07HEF
#else
#define F07HEF f07hef_
#endif
extern void NAG_CALL F07HEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbequ_(uplo, n, kd, ab, ldab, s, scond, amax, info, length_uplo)  \
DPBEQU(uplo, length_uplo, n, kd, ab, ldab, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbequ_ DPBEQU
#else
#define DPBEQU dpbequ_
#endif
extern void NAG_CALL DPBEQU(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hff_(uplo, n, kd, ab, ldab, s, scond, amax, info, length_uplo)  \
F07HFF(uplo, length_uplo, n, kd, ab, ldab, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hff_ F07HFF
#else
#define F07HFF f07hff_
#endif
extern void NAG_CALL F07HFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbcon_(uplo, n, kd, ab, ldab, anorm, rcond, work, iwork, info, length_uplo)  \
DPBCON(uplo, length_uplo, n, kd, ab, ldab, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbcon_ DPBCON
#else
#define DPBCON dpbcon_
#endif
extern void NAG_CALL DPBCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hgf_(uplo, n, kd, ab, ldab, anorm, rcond, work, iwork, info, length_uplo)  \
F07HGF(uplo, length_uplo, n, kd, ab, ldab, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hgf_ F07HGF
#else
#define F07HGF f07hgf_
#endif
extern void NAG_CALL F07HGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpbrfs_(uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
DPBRFS(uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpbrfs_ DPBRFS
#else
#define DPBRFS dpbrfs_
#endif
extern void NAG_CALL DPBRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hhf_(uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
F07HHF(uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hhf_ F07HHF
#else
#define F07HHF f07hhf_
#endif
extern void NAG_CALL F07HHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbsv_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
ZPBSV(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbsv_ ZPBSV
#else
#define ZPBSV zpbsv_
#endif
extern void NAG_CALL ZPBSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hnf_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
F07HNF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hnf_ F07HNF
#else
#define F07HNF f07hnf_
#endif
extern void NAG_CALL F07HNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbsvx_(fact, uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
ZPBSVX(fact, length_fact, uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbsvx_ ZPBSVX
#else
#define ZPBSVX zpbsvx_
#endif
extern void NAG_CALL ZPBSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hpf_(fact, uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo, length_equed)  \
F07HPF(fact, length_fact, uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, equed, length_equed, s, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hpf_ F07HPF
#else
#define F07HPF f07hpf_
#endif
extern void NAG_CALL F07HPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  char * equed
#ifdef USE_STDCALL
,  CONST Charlen length_equed
#endif
,
  double s[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo,
 CONST Charlen length_equed
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbtrf_(uplo, n, kd, ab, ldab, info, length_uplo)  \
ZPBTRF(uplo, length_uplo, n, kd, ab, ldab, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbtrf_ ZPBTRF
#else
#define ZPBTRF zpbtrf_
#endif
extern void NAG_CALL ZPBTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hrf_(uplo, n, kd, ab, ldab, info, length_uplo)  \
F07HRF(uplo, length_uplo, n, kd, ab, ldab, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hrf_ F07HRF
#else
#define F07HRF f07hrf_
#endif
extern void NAG_CALL F07HRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbtrs_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
ZPBTRS(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbtrs_ ZPBTRS
#else
#define ZPBTRS zpbtrs_
#endif
extern void NAG_CALL ZPBTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hsf_(uplo, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo)  \
F07HSF(uplo, length_uplo, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hsf_ F07HSF
#else
#define F07HSF f07hsf_
#endif
extern void NAG_CALL F07HSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbequ_(uplo, n, kd, ab, ldab, s, scond, amax, info, length_uplo)  \
ZPBEQU(uplo, length_uplo, n, kd, ab, ldab, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbequ_ ZPBEQU
#else
#define ZPBEQU zpbequ_
#endif
extern void NAG_CALL ZPBEQU(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07htf_(uplo, n, kd, ab, ldab, s, scond, amax, info, length_uplo)  \
F07HTF(uplo, length_uplo, n, kd, ab, ldab, s, scond, amax, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07htf_ F07HTF
#else
#define F07HTF f07htf_
#endif
extern void NAG_CALL F07HTF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double s[] /* 1 dimension */,
  double REFPTR scond,
  double REFPTR amax,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbcon_(uplo, n, kd, ab, ldab, anorm, rcond, work, rwork, info, length_uplo)  \
ZPBCON(uplo, length_uplo, n, kd, ab, ldab, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbcon_ ZPBCON
#else
#define ZPBCON zpbcon_
#endif
extern void NAG_CALL ZPBCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07huf_(uplo, n, kd, ab, ldab, anorm, rcond, work, rwork, info, length_uplo)  \
F07HUF(uplo, length_uplo, n, kd, ab, ldab, anorm, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07huf_ F07HUF
#else
#define F07HUF f07huf_
#endif
extern void NAG_CALL F07HUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpbrfs_(uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZPBRFS(uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpbrfs_ ZPBRFS
#else
#define ZPBRFS zpbrfs_
#endif
extern void NAG_CALL ZPBRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07hvf_(uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07HVF(uplo, length_uplo, n, kd, nrhs, ab, ldab, afb, ldafb, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07hvf_ F07HVF
#else
#define F07HVF f07hvf_
#endif
extern void NAG_CALL F07HVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex afb[] /* 2 dimension */,
  CONST Integer REFPTR ldafb,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dptsv_ DPTSV
#else
#define DPTSV dptsv_
#endif
extern void NAG_CALL DPTSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jaf_ F07JAF
#else
#define F07JAF f07jaf_
#endif
extern void NAG_CALL F07JAF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dptsvx_(fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, info, length_fact)  \
DPTSVX(fact, length_fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dptsvx_ DPTSVX
#else
#define DPTSVX dptsvx_
#endif
extern void NAG_CALL DPTSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  double ef[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07jbf_(fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, info, length_fact)  \
F07JBF(fact, length_fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07jbf_ F07JBF
#else
#define F07JBF f07jbf_
#endif
extern void NAG_CALL F07JBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  double ef[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dpttrf_ DPTTRF
#else
#define DPTTRF dpttrf_
#endif
extern void NAG_CALL DPTTRF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jdf_ F07JDF
#else
#define F07JDF f07jdf_
#endif
extern void NAG_CALL F07JDF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dpttrs_ DPTTRS
#else
#define DPTTRS dpttrs_
#endif
extern void NAG_CALL DPTTRS(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jef_ F07JEF
#else
#define F07JEF f07jef_
#endif
extern void NAG_CALL F07JEF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dptcon_ DPTCON
#else
#define DPTCON dptcon_
#endif
extern void NAG_CALL DPTCON(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jgf_ F07JGF
#else
#define F07JGF f07jgf_
#endif
extern void NAG_CALL F07JGF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dptrfs_ DPTRFS
#else
#define DPTRFS dptrfs_
#endif
extern void NAG_CALL DPTRFS(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST double ef[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jhf_ F07JHF
#else
#define F07JHF f07jhf_
#endif
extern void NAG_CALL F07JHF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST double ef[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zptsv_ ZPTSV
#else
#define ZPTSV zptsv_
#endif
extern void NAG_CALL ZPTSV(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  Complex e[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jnf_ F07JNF
#else
#define F07JNF f07jnf_
#endif
extern void NAG_CALL F07JNF(
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double d[] /* 1 dimension */,
  Complex e[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zptsvx_(fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact)  \
ZPTSVX(fact, length_fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zptsvx_ ZPTSVX
#else
#define ZPTSVX zptsvx_
#endif
extern void NAG_CALL ZPTSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  Complex ef[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07jpf_(fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact)  \
F07JPF(fact, length_fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07jpf_ F07JPF
#else
#define F07JPF f07jpf_
#endif
extern void NAG_CALL F07JPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  double df[] /* 1 dimension */,
  Complex ef[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zpttrf_ ZPTTRF
#else
#define ZPTTRF zpttrf_
#endif
extern void NAG_CALL ZPTTRF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  Complex e[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07jrf_ F07JRF
#else
#define F07JRF f07jrf_
#endif
extern void NAG_CALL F07JRF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  Complex e[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpttrs_(uplo, n, nrhs, d, e, b, ldb, info, length_uplo)  \
ZPTTRS(uplo, length_uplo, n, nrhs, d, e, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpttrs_ ZPTTRS
#else
#define ZPTTRS zpttrs_
#endif
extern void NAG_CALL ZPTTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07jsf_(uplo, n, nrhs, d, e, b, ldb, info, length_uplo)  \
F07JSF(uplo, length_uplo, n, nrhs, d, e, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07jsf_ F07JSF
#else
#define F07JSF f07jsf_
#endif
extern void NAG_CALL F07JSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zptcon_ ZPTCON
#else
#define ZPTCON zptcon_
#endif
extern void NAG_CALL ZPTCON(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f07juf_ F07JUF
#else
#define F07JUF f07juf_
#endif
extern void NAG_CALL F07JUF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zptrfs_(uplo, n, nrhs, d, e, df, ef, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZPTRFS(uplo, length_uplo, n, nrhs, d, e, df, ef, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zptrfs_ ZPTRFS
#else
#define ZPTRFS zptrfs_
#endif
extern void NAG_CALL ZPTRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST Complex ef[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07jvf_(uplo, n, nrhs, d, e, df, ef, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07JVF(uplo, length_uplo, n, nrhs, d, e, df, ef, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07jvf_ F07JVF
#else
#define F07JVF f07jvf_
#endif
extern void NAG_CALL F07JVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double d[] /* 1 dimension */,
  CONST Complex e[] /* 1 dimension */,
  CONST double df[] /* 1 dimension */,
  CONST Complex ef[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpstrf_(uplo, n, a, lda, piv, rank, tol, work, info, length_uplo)  \
DPSTRF(uplo, length_uplo, n, a, lda, piv, rank, tol, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpstrf_ DPSTRF
#else
#define DPSTRF dpstrf_
#endif
extern void NAG_CALL DPSTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer piv[] /* 1 dimension */,
  Integer REFPTR rank,
  CONST double REFPTR tol,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07kdf_(uplo, n, a, lda, piv, rank, tol, work, info, length_uplo)  \
F07KDF(uplo, length_uplo, n, a, lda, piv, rank, tol, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07kdf_ F07KDF
#else
#define F07KDF f07kdf_
#endif
extern void NAG_CALL F07KDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer piv[] /* 1 dimension */,
  Integer REFPTR rank,
  CONST double REFPTR tol,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpstrf_(uplo, n, a, lda, piv, rank, tol, work, info, length_uplo)  \
ZPSTRF(uplo, length_uplo, n, a, lda, piv, rank, tol, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpstrf_ ZPSTRF
#else
#define ZPSTRF zpstrf_
#endif
extern void NAG_CALL ZPSTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer piv[] /* 1 dimension */,
  Integer REFPTR rank,
  CONST double REFPTR tol,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07krf_(uplo, n, a, lda, piv, rank, tol, work, info, length_uplo)  \
F07KRF(uplo, length_uplo, n, a, lda, piv, rank, tol, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07krf_ F07KRF
#else
#define F07KRF f07krf_
#endif
extern void NAG_CALL F07KRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer piv[] /* 1 dimension */,
  Integer REFPTR rank,
  CONST double REFPTR tol,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsysv_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
DSYSV(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsysv_ DSYSV
#else
#define DSYSV dsysv_
#endif
extern void NAG_CALL DSYSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07maf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
F07MAF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07maf_ F07MAF
#else
#define F07MAF f07maf_
#endif
extern void NAG_CALL F07MAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsysvx_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, iwork, info, length_fact, length_uplo)  \
DSYSVX(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsysvx_ DSYSVX
#else
#define DSYSVX dsysvx_
#endif
extern void NAG_CALL DSYSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mbf_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, iwork, info, length_fact, length_uplo)  \
F07MBF(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mbf_ F07MBF
#else
#define F07MBF f07mbf_
#endif
extern void NAG_CALL F07MBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsytrf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
DSYTRF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsytrf_ DSYTRF
#else
#define DSYTRF dsytrf_
#endif
extern void NAG_CALL DSYTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mdf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
F07MDF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mdf_ F07MDF
#else
#define F07MDF f07mdf_
#endif
extern void NAG_CALL F07MDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsytrs_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
DSYTRS(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsytrs_ DSYTRS
#else
#define DSYTRS dsytrs_
#endif
extern void NAG_CALL DSYTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mef_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
F07MEF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mef_ F07MEF
#else
#define F07MEF f07mef_
#endif
extern void NAG_CALL F07MEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsycon_(uplo, n, a, lda, ipiv, anorm, rcond, work, iwork, info, length_uplo)  \
DSYCON(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsycon_ DSYCON
#else
#define DSYCON dsycon_
#endif
extern void NAG_CALL DSYCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mgf_(uplo, n, a, lda, ipiv, anorm, rcond, work, iwork, info, length_uplo)  \
F07MGF(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mgf_ F07MGF
#else
#define F07MGF f07mgf_
#endif
extern void NAG_CALL F07MGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyrfs_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
DSYRFS(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyrfs_ DSYRFS
#else
#define DSYRFS dsyrfs_
#endif
extern void NAG_CALL DSYRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mhf_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
F07MHF(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mhf_ F07MHF
#else
#define F07MHF f07mhf_
#endif
extern void NAG_CALL F07MHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsytri_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
DSYTRI(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsytri_ DSYTRI
#else
#define DSYTRI dsytri_
#endif
extern void NAG_CALL DSYTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mjf_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
F07MJF(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mjf_ F07MJF
#else
#define F07MJF f07mjf_
#endif
extern void NAG_CALL F07MJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhesv_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
ZHESV(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhesv_ ZHESV
#else
#define ZHESV zhesv_
#endif
extern void NAG_CALL ZHESV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mnf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
F07MNF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mnf_ F07MNF
#else
#define F07MNF f07mnf_
#endif
extern void NAG_CALL F07MNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhesvx_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info, length_fact, length_uplo)  \
ZHESVX(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhesvx_ ZHESVX
#else
#define ZHESVX zhesvx_
#endif
extern void NAG_CALL ZHESVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mpf_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info, length_fact, length_uplo)  \
F07MPF(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mpf_ F07MPF
#else
#define F07MPF f07mpf_
#endif
extern void NAG_CALL F07MPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhetrf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
ZHETRF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhetrf_ ZHETRF
#else
#define ZHETRF zhetrf_
#endif
extern void NAG_CALL ZHETRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mrf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
F07MRF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mrf_ F07MRF
#else
#define F07MRF f07mrf_
#endif
extern void NAG_CALL F07MRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhetrs_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
ZHETRS(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhetrs_ ZHETRS
#else
#define ZHETRS zhetrs_
#endif
extern void NAG_CALL ZHETRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07msf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
F07MSF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07msf_ F07MSF
#else
#define F07MSF f07msf_
#endif
extern void NAG_CALL F07MSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhecon_(uplo, n, a, lda, ipiv, anorm, rcond, work, info, length_uplo)  \
ZHECON(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhecon_ ZHECON
#else
#define ZHECON zhecon_
#endif
extern void NAG_CALL ZHECON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07muf_(uplo, n, a, lda, ipiv, anorm, rcond, work, info, length_uplo)  \
F07MUF(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07muf_ F07MUF
#else
#define F07MUF f07muf_
#endif
extern void NAG_CALL F07MUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zherfs_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZHERFS(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zherfs_ ZHERFS
#else
#define ZHERFS zherfs_
#endif
extern void NAG_CALL ZHERFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mvf_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07MVF(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mvf_ F07MVF
#else
#define F07MVF f07mvf_
#endif
extern void NAG_CALL F07MVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhetri_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
ZHETRI(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhetri_ ZHETRI
#else
#define ZHETRI zhetri_
#endif
extern void NAG_CALL ZHETRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07mwf_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
F07MWF(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07mwf_ F07MWF
#else
#define F07MWF f07mwf_
#endif
extern void NAG_CALL F07MWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsysv_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
ZSYSV(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsysv_ ZSYSV
#else
#define ZSYSV zsysv_
#endif
extern void NAG_CALL ZSYSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nnf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info, length_uplo)  \
F07NNF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nnf_ F07NNF
#else
#define F07NNF f07nnf_
#endif
extern void NAG_CALL F07NNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsysvx_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info, length_fact, length_uplo)  \
ZSYSVX(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsysvx_ ZSYSVX
#else
#define ZSYSVX zsysvx_
#endif
extern void NAG_CALL ZSYSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07npf_(fact, uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info, length_fact, length_uplo)  \
F07NPF(fact, length_fact, uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07npf_ F07NPF
#else
#define F07NPF f07npf_
#endif
extern void NAG_CALL F07NPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsytrf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
ZSYTRF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsytrf_ ZSYTRF
#else
#define ZSYTRF zsytrf_
#endif
extern void NAG_CALL ZSYTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nrf_(uplo, n, a, lda, ipiv, work, lwork, info, length_uplo)  \
F07NRF(uplo, length_uplo, n, a, lda, ipiv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nrf_ F07NRF
#else
#define F07NRF f07nrf_
#endif
extern void NAG_CALL F07NRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsytrs_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
ZSYTRS(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsytrs_ ZSYTRS
#else
#define ZSYTRS zsytrs_
#endif
extern void NAG_CALL ZSYTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nsf_(uplo, n, nrhs, a, lda, ipiv, b, ldb, info, length_uplo)  \
F07NSF(uplo, length_uplo, n, nrhs, a, lda, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nsf_ F07NSF
#else
#define F07NSF f07nsf_
#endif
extern void NAG_CALL F07NSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsycon_(uplo, n, a, lda, ipiv, anorm, rcond, work, info, length_uplo)  \
ZSYCON(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsycon_ ZSYCON
#else
#define ZSYCON zsycon_
#endif
extern void NAG_CALL ZSYCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nuf_(uplo, n, a, lda, ipiv, anorm, rcond, work, info, length_uplo)  \
F07NUF(uplo, length_uplo, n, a, lda, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nuf_ F07NUF
#else
#define F07NUF f07nuf_
#endif
extern void NAG_CALL F07NUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsyrfs_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZSYRFS(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsyrfs_ ZSYRFS
#else
#define ZSYRFS zsyrfs_
#endif
extern void NAG_CALL ZSYRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nvf_(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07NVF(uplo, length_uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nvf_ F07NVF
#else
#define F07NVF f07nvf_
#endif
extern void NAG_CALL F07NVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex af[] /* 2 dimension */,
  CONST Integer REFPTR ldaf,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsytri_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
ZSYTRI(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsytri_ ZSYTRI
#else
#define ZSYTRI zsytri_
#endif
extern void NAG_CALL ZSYTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07nwf_(uplo, n, a, lda, ipiv, work, info, length_uplo)  \
F07NWF(uplo, length_uplo, n, a, lda, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07nwf_ F07NWF
#else
#define F07NWF f07nwf_
#endif
extern void NAG_CALL F07NWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspsv_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
DSPSV(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspsv_ DSPSV
#else
#define DSPSV dspsv_
#endif
extern void NAG_CALL DSPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07paf_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07PAF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07paf_ F07PAF
#else
#define F07PAF f07paf_
#endif
extern void NAG_CALL F07PAF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspsvx_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo)  \
DSPSVX(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspsvx_ DSPSVX
#else
#define DSPSVX dspsvx_
#endif
extern void NAG_CALL DSPSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pbf_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info, length_fact, length_uplo)  \
F07PBF(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pbf_ F07PBF
#else
#define F07PBF f07pbf_
#endif
extern void NAG_CALL F07PBF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsptrf_(uplo, n, ap, ipiv, info, length_uplo)  \
DSPTRF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsptrf_ DSPTRF
#else
#define DSPTRF dsptrf_
#endif
extern void NAG_CALL DSPTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pdf_(uplo, n, ap, ipiv, info, length_uplo)  \
F07PDF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pdf_ F07PDF
#else
#define F07PDF f07pdf_
#endif
extern void NAG_CALL F07PDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsptrs_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
DSPTRS(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsptrs_ DSPTRS
#else
#define DSPTRS dsptrs_
#endif
extern void NAG_CALL DSPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pef_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07PEF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pef_ F07PEF
#else
#define F07PEF f07pef_
#endif
extern void NAG_CALL F07PEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspcon_(uplo, n, ap, ipiv, anorm, rcond, work, iwork, info, length_uplo)  \
DSPCON(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspcon_ DSPCON
#else
#define DSPCON dspcon_
#endif
extern void NAG_CALL DSPCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pgf_(uplo, n, ap, ipiv, anorm, rcond, work, iwork, info, length_uplo)  \
F07PGF(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pgf_ F07PGF
#else
#define F07PGF f07pgf_
#endif
extern void NAG_CALL F07PGF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsprfs_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
DSPRFS(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsprfs_ DSPRFS
#else
#define DSPRFS dsprfs_
#endif
extern void NAG_CALL DSPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07phf_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo)  \
F07PHF(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07phf_ F07PHF
#else
#define F07PHF f07phf_
#endif
extern void NAG_CALL F07PHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsptri_(uplo, n, ap, ipiv, work, info, length_uplo)  \
DSPTRI(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsptri_ DSPTRI
#else
#define DSPTRI dsptri_
#endif
extern void NAG_CALL DSPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pjf_(uplo, n, ap, ipiv, work, info, length_uplo)  \
F07PJF(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pjf_ F07PJF
#else
#define F07PJF f07pjf_
#endif
extern void NAG_CALL F07PJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpsv_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
ZHPSV(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpsv_ ZHPSV
#else
#define ZHPSV zhpsv_
#endif
extern void NAG_CALL ZHPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pnf_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07PNF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pnf_ F07PNF
#else
#define F07PNF f07pnf_
#endif
extern void NAG_CALL F07PNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpsvx_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo)  \
ZHPSVX(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpsvx_ ZHPSVX
#else
#define ZHPSVX zhpsvx_
#endif
extern void NAG_CALL ZHPSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ppf_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo)  \
F07PPF(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ppf_ F07PPF
#else
#define F07PPF f07ppf_
#endif
extern void NAG_CALL F07PPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhptrf_(uplo, n, ap, ipiv, info, length_uplo)  \
ZHPTRF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhptrf_ ZHPTRF
#else
#define ZHPTRF zhptrf_
#endif
extern void NAG_CALL ZHPTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07prf_(uplo, n, ap, ipiv, info, length_uplo)  \
F07PRF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07prf_ F07PRF
#else
#define F07PRF f07prf_
#endif
extern void NAG_CALL F07PRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhptrs_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
ZHPTRS(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhptrs_ ZHPTRS
#else
#define ZHPTRS zhptrs_
#endif
extern void NAG_CALL ZHPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07psf_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07PSF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07psf_ F07PSF
#else
#define F07PSF f07psf_
#endif
extern void NAG_CALL F07PSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpcon_(uplo, n, ap, ipiv, anorm, rcond, work, info, length_uplo)  \
ZHPCON(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpcon_ ZHPCON
#else
#define ZHPCON zhpcon_
#endif
extern void NAG_CALL ZHPCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07puf_(uplo, n, ap, ipiv, anorm, rcond, work, info, length_uplo)  \
F07PUF(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07puf_ F07PUF
#else
#define F07PUF f07puf_
#endif
extern void NAG_CALL F07PUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhprfs_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZHPRFS(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhprfs_ ZHPRFS
#else
#define ZHPRFS zhprfs_
#endif
extern void NAG_CALL ZHPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pvf_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07PVF(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pvf_ F07PVF
#else
#define F07PVF f07pvf_
#endif
extern void NAG_CALL F07PVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhptri_(uplo, n, ap, ipiv, work, info, length_uplo)  \
ZHPTRI(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhptri_ ZHPTRI
#else
#define ZHPTRI zhptri_
#endif
extern void NAG_CALL ZHPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07pwf_(uplo, n, ap, ipiv, work, info, length_uplo)  \
F07PWF(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07pwf_ F07PWF
#else
#define F07PWF f07pwf_
#endif
extern void NAG_CALL F07PWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zspsv_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
ZSPSV(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zspsv_ ZSPSV
#else
#define ZSPSV zspsv_
#endif
extern void NAG_CALL ZSPSV(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qnf_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07QNF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qnf_ F07QNF
#else
#define F07QNF f07qnf_
#endif
extern void NAG_CALL F07QNF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zspsvx_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo)  \
ZSPSVX(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zspsvx_ ZSPSVX
#else
#define ZSPSVX zspsvx_
#endif
extern void NAG_CALL ZSPSVX(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qpf_(fact, uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info, length_fact, length_uplo)  \
F07QPF(fact, length_fact, uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qpf_ F07QPF
#else
#define F07QPF f07qpf_
#endif
extern void NAG_CALL F07QPF(
  CONST char * fact
#ifdef USE_STDCALL
,  CONST Charlen length_fact
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex afp[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double REFPTR rcond,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_fact,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsptrf_(uplo, n, ap, ipiv, info, length_uplo)  \
ZSPTRF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsptrf_ ZSPTRF
#else
#define ZSPTRF zsptrf_
#endif
extern void NAG_CALL ZSPTRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qrf_(uplo, n, ap, ipiv, info, length_uplo)  \
F07QRF(uplo, length_uplo, n, ap, ipiv, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qrf_ F07QRF
#else
#define F07QRF f07qrf_
#endif
extern void NAG_CALL F07QRF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer ipiv[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsptrs_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
ZSPTRS(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsptrs_ ZSPTRS
#else
#define ZSPTRS zsptrs_
#endif
extern void NAG_CALL ZSPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qsf_(uplo, n, nrhs, ap, ipiv, b, ldb, info, length_uplo)  \
F07QSF(uplo, length_uplo, n, nrhs, ap, ipiv, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qsf_ F07QSF
#else
#define F07QSF f07qsf_
#endif
extern void NAG_CALL F07QSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zspcon_(uplo, n, ap, ipiv, anorm, rcond, work, info, length_uplo)  \
ZSPCON(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zspcon_ ZSPCON
#else
#define ZSPCON zspcon_
#endif
extern void NAG_CALL ZSPCON(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07quf_(uplo, n, ap, ipiv, anorm, rcond, work, info, length_uplo)  \
F07QUF(uplo, length_uplo, n, ap, ipiv, anorm, rcond, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07quf_ F07QUF
#else
#define F07QUF f07quf_
#endif
extern void NAG_CALL F07QUF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST double REFPTR anorm,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsprfs_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
ZSPRFS(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsprfs_ ZSPRFS
#else
#define ZSPRFS zsprfs_
#endif
extern void NAG_CALL ZSPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qvf_(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo)  \
F07QVF(uplo, length_uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qvf_ F07QVF
#else
#define F07QVF f07qvf_
#endif
extern void NAG_CALL F07QVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex afp[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsptri_(uplo, n, ap, ipiv, work, info, length_uplo)  \
ZSPTRI(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsptri_ ZSPTRI
#else
#define ZSPTRI zsptri_
#endif
extern void NAG_CALL ZSPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07qwf_(uplo, n, ap, ipiv, work, info, length_uplo)  \
F07QWF(uplo, length_uplo, n, ap, ipiv, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07qwf_ F07QWF
#else
#define F07QWF f07qwf_
#endif
extern void NAG_CALL F07QWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Integer ipiv[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info, length_uplo, length_trans, length_diag)  \
DTRTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrtrs_ DTRTRS
#else
#define DTRTRS dtrtrs_
#endif
extern void NAG_CALL DTRTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tef_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07TEF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tef_ F07TEF
#else
#define F07TEF f07tef_
#endif
extern void NAG_CALL F07TEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrcon_(norm, uplo, diag, n, a, lda, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
DTRCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, a, lda, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrcon_ DTRCON
#else
#define DTRCON dtrcon_
#endif
extern void NAG_CALL DTRCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tgf_(norm, uplo, diag, n, a, lda, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
F07TGF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, a, lda, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tgf_ F07TGF
#else
#define F07TGF f07tgf_
#endif
extern void NAG_CALL F07TGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrrfs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
DTRRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrrfs_ DTRRFS
#else
#define DTRRFS dtrrfs_
#endif
extern void NAG_CALL DTRRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07thf_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
F07THF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07thf_ F07THF
#else
#define F07THF f07thf_
#endif
extern void NAG_CALL F07THF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtrtri_(uplo, diag, n, a, lda, info, length_uplo, length_diag)  \
DTRTRI(uplo, length_uplo, diag, length_diag, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtrtri_ DTRTRI
#else
#define DTRTRI dtrtri_
#endif
extern void NAG_CALL DTRTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tjf_(uplo, diag, n, a, lda, info, length_uplo, length_diag)  \
F07TJF(uplo, length_uplo, diag, length_diag, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tjf_ F07TJF
#else
#define F07TJF f07tjf_
#endif
extern void NAG_CALL F07TJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info, length_uplo, length_trans, length_diag)  \
ZTRTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrtrs_ ZTRTRS
#else
#define ZTRTRS ztrtrs_
#endif
extern void NAG_CALL ZTRTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tsf_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07TSF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tsf_ F07TSF
#else
#define F07TSF f07tsf_
#endif
extern void NAG_CALL F07TSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrcon_(norm, uplo, diag, n, a, lda, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
ZTRCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, a, lda, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrcon_ ZTRCON
#else
#define ZTRCON ztrcon_
#endif
extern void NAG_CALL ZTRCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tuf_(norm, uplo, diag, n, a, lda, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
F07TUF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, a, lda, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tuf_ F07TUF
#else
#define F07TUF f07tuf_
#endif
extern void NAG_CALL F07TUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrrfs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
ZTRRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrrfs_ ZTRRFS
#else
#define ZTRRFS ztrrfs_
#endif
extern void NAG_CALL ZTRRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07tvf_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
F07TVF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, a, lda, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07tvf_ F07TVF
#else
#define F07TVF f07tvf_
#endif
extern void NAG_CALL F07TVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztrtri_(uplo, diag, n, a, lda, info, length_uplo, length_diag)  \
ZTRTRI(uplo, length_uplo, diag, length_diag, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztrtri_ ZTRTRI
#else
#define ZTRTRI ztrtri_
#endif
extern void NAG_CALL ZTRTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07twf_(uplo, diag, n, a, lda, info, length_uplo, length_diag)  \
F07TWF(uplo, length_uplo, diag, length_diag, n, a, lda, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07twf_ F07TWF
#else
#define F07TWF f07twf_
#endif
extern void NAG_CALL F07TWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtptrs_(uplo, trans, diag, n, nrhs, ap, b, ldb, info, length_uplo, length_trans, length_diag)  \
DTPTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtptrs_ DTPTRS
#else
#define DTPTRS dtptrs_
#endif
extern void NAG_CALL DTPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07uef_(uplo, trans, diag, n, nrhs, ap, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07UEF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07uef_ F07UEF
#else
#define F07UEF f07uef_
#endif
extern void NAG_CALL F07UEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtpcon_(norm, uplo, diag, n, ap, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
DTPCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtpcon_ DTPCON
#else
#define DTPCON dtpcon_
#endif
extern void NAG_CALL DTPCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ugf_(norm, uplo, diag, n, ap, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
F07UGF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ugf_ F07UGF
#else
#define F07UGF f07ugf_
#endif
extern void NAG_CALL F07UGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtprfs_(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
DTPRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtprfs_ DTPRFS
#else
#define DTPRFS dtprfs_
#endif
extern void NAG_CALL DTPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07uhf_(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
F07UHF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07uhf_ F07UHF
#else
#define F07UHF f07uhf_
#endif
extern void NAG_CALL F07UHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double ap[] /* 1 dimension */,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtptri_(uplo, diag, n, ap, info, length_uplo, length_diag)  \
DTPTRI(uplo, length_uplo, diag, length_diag, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtptri_ DTPTRI
#else
#define DTPTRI dtptri_
#endif
extern void NAG_CALL DTPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07ujf_(uplo, diag, n, ap, info, length_uplo, length_diag)  \
F07UJF(uplo, length_uplo, diag, length_diag, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07ujf_ F07UJF
#else
#define F07UJF f07ujf_
#endif
extern void NAG_CALL F07UJF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztptrs_(uplo, trans, diag, n, nrhs, ap, b, ldb, info, length_uplo, length_trans, length_diag)  \
ZTPTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztptrs_ ZTPTRS
#else
#define ZTPTRS ztptrs_
#endif
extern void NAG_CALL ZTPTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07usf_(uplo, trans, diag, n, nrhs, ap, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07USF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07usf_ F07USF
#else
#define F07USF f07usf_
#endif
extern void NAG_CALL F07USF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztpcon_(norm, uplo, diag, n, ap, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
ZTPCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztpcon_ ZTPCON
#else
#define ZTPCON ztpcon_
#endif
extern void NAG_CALL ZTPCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07uuf_(norm, uplo, diag, n, ap, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
F07UUF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, ap, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07uuf_ F07UUF
#else
#define F07UUF f07uuf_
#endif
extern void NAG_CALL F07UUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztprfs_(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
ZTPRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztprfs_ ZTPRFS
#else
#define ZTPRFS ztprfs_
#endif
extern void NAG_CALL ZTPRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07uvf_(uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
F07UVF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, nrhs, ap, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07uvf_ F07UVF
#else
#define F07UVF f07uvf_
#endif
extern void NAG_CALL F07UVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztptri_(uplo, diag, n, ap, info, length_uplo, length_diag)  \
ZTPTRI(uplo, length_uplo, diag, length_diag, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztptri_ ZTPTRI
#else
#define ZTPTRI ztptri_
#endif
extern void NAG_CALL ZTPTRI(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07uwf_(uplo, diag, n, ap, info, length_uplo, length_diag)  \
F07UWF(uplo, length_uplo, diag, length_diag, n, ap, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07uwf_ F07UWF
#else
#define F07UWF f07uwf_
#endif
extern void NAG_CALL F07UWF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtbtrs_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo, length_trans, length_diag)  \
DTBTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtbtrs_ DTBTRS
#else
#define DTBTRS dtbtrs_
#endif
extern void NAG_CALL DTBTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vef_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07VEF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vef_ F07VEF
#else
#define F07VEF f07vef_
#endif
extern void NAG_CALL F07VEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtbcon_(norm, uplo, diag, n, kd, ab, ldab, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
DTBCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, kd, ab, ldab, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtbcon_ DTBCON
#else
#define DTBCON dtbcon_
#endif
extern void NAG_CALL DTBCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vgf_(norm, uplo, diag, n, kd, ab, ldab, rcond, work, iwork, info, length_norm, length_uplo, length_diag)  \
F07VGF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, kd, ab, ldab, rcond, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vgf_ F07VGF
#else
#define F07VGF f07vgf_
#endif
extern void NAG_CALL F07VGF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double REFPTR rcond,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtbrfs_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
DTBRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtbrfs_ DTBRFS
#else
#define DTBRFS dtbrfs_
#endif
extern void NAG_CALL DTBRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vhf_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info, length_uplo, length_trans, length_diag)  \
F07VHF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vhf_ F07VHF
#else
#define F07VHF f07vhf_
#endif
extern void NAG_CALL F07VHF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST double x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztbtrs_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo, length_trans, length_diag)  \
ZTBTRS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztbtrs_ ZTBTRS
#else
#define ZTBTRS ztbtrs_
#endif
extern void NAG_CALL ZTBTRS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vsf_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, info, length_uplo, length_trans, length_diag)  \
F07VSF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vsf_ F07VSF
#else
#define F07VSF f07vsf_
#endif
extern void NAG_CALL F07VSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztbcon_(norm, uplo, diag, n, kd, ab, ldab, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
ZTBCON(norm, length_norm, uplo, length_uplo, diag, length_diag, n, kd, ab, ldab, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztbcon_ ZTBCON
#else
#define ZTBCON ztbcon_
#endif
extern void NAG_CALL ZTBCON(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vuf_(norm, uplo, diag, n, kd, ab, ldab, rcond, work, rwork, info, length_norm, length_uplo, length_diag)  \
F07VUF(norm, length_norm, uplo, length_uplo, diag, length_diag, n, kd, ab, ldab, rcond, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vuf_ F07VUF
#else
#define F07VUF f07vuf_
#endif
extern void NAG_CALL F07VUF(
  CONST char * norm
#ifdef USE_STDCALL
,  CONST Charlen length_norm
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double REFPTR rcond,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_norm,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztbrfs_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
ZTBRFS(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztbrfs_ ZTBRFS
#else
#define ZTBRFS ztbrfs_
#endif
extern void NAG_CALL ZTBRFS(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07vvf_(uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info, length_uplo, length_trans, length_diag)  \
F07VVF(uplo, length_uplo, trans, length_trans, diag, length_diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07vvf_ F07VVF
#else
#define F07VVF f07vvf_
#endif
extern void NAG_CALL F07VVF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  CONST Integer REFPTR nrhs,
  CONST Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  CONST Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  CONST Complex x[] /* 2 dimension */,
  CONST Integer REFPTR ldx,
  double ferr[] /* 1 dimension */,
  double berr[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_trans,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpftrf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
DPFTRF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpftrf_ DPFTRF
#else
#define DPFTRF dpftrf_
#endif
extern void NAG_CALL DPFTRF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wdf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
F07WDF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wdf_ F07WDF
#else
#define F07WDF f07wdf_
#endif
extern void NAG_CALL F07WDF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpftrs_(transr, uplo, n, nrhs, a, b, ldb, info, length_transr, length_uplo)  \
DPFTRS(transr, length_transr, uplo, length_uplo, n, nrhs, a, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpftrs_ DPFTRS
#else
#define DPFTRS dpftrs_
#endif
extern void NAG_CALL DPFTRS(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wef_(transr, uplo, n, nrhs, a, b, ldb, info, length_transr, length_uplo)  \
F07WEF(transr, length_transr, uplo, length_uplo, n, nrhs, a, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wef_ F07WEF
#else
#define F07WEF f07wef_
#endif
extern void NAG_CALL F07WEF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST double a[] /* 1 dimension */,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpftri_(transr, uplo, n, a, info, length_transr, length_uplo)  \
DPFTRI(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpftri_ DPFTRI
#else
#define DPFTRI dpftri_
#endif
extern void NAG_CALL DPFTRI(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wjf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
F07WJF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wjf_ F07WJF
#else
#define F07WJF f07wjf_
#endif
extern void NAG_CALL F07WJF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dtftri_(transr, uplo, diag, n, a, info, length_transr, length_uplo, length_diag)  \
DTFTRI(transr, length_transr, uplo, length_uplo, diag, length_diag, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dtftri_ DTFTRI
#else
#define DTFTRI dtftri_
#endif
extern void NAG_CALL DTFTRI(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wkf_(transr, uplo, diag, n, a, info, length_transr, length_uplo, length_diag)  \
F07WKF(transr, length_transr, uplo, length_uplo, diag, length_diag, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wkf_ F07WKF
#else
#define F07WKF f07wkf_
#endif
extern void NAG_CALL F07WKF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpftrf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
ZPFTRF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpftrf_ ZPFTRF
#else
#define ZPFTRF zpftrf_
#endif
extern void NAG_CALL ZPFTRF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wrf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
F07WRF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wrf_ F07WRF
#else
#define F07WRF f07wrf_
#endif
extern void NAG_CALL F07WRF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpftrs_(transr, uplo, n, nrhs, a, b, ldb, info, length_transr, length_uplo)  \
ZPFTRS(transr, length_transr, uplo, length_uplo, n, nrhs, a, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpftrs_ ZPFTRS
#else
#define ZPFTRS zpftrs_
#endif
extern void NAG_CALL ZPFTRS(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wsf_(transr, uplo, n, nrhs, a, b, ldb, info, length_transr, length_uplo)  \
F07WSF(transr, length_transr, uplo, length_uplo, n, nrhs, a, b, ldb, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wsf_ F07WSF
#else
#define F07WSF f07wsf_
#endif
extern void NAG_CALL F07WSF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  CONST Complex a[] /* 1 dimension */,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpftri_(transr, uplo, n, a, info, length_transr, length_uplo)  \
ZPFTRI(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpftri_ ZPFTRI
#else
#define ZPFTRI zpftri_
#endif
extern void NAG_CALL ZPFTRI(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wwf_(transr, uplo, n, a, info, length_transr, length_uplo)  \
F07WWF(transr, length_transr, uplo, length_uplo, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wwf_ F07WWF
#else
#define F07WWF f07wwf_
#endif
extern void NAG_CALL F07WWF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ztftri_(transr, uplo, diag, n, a, info, length_transr, length_uplo, length_diag)  \
ZTFTRI(transr, length_transr, uplo, length_uplo, diag, length_diag, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ztftri_ ZTFTRI
#else
#define ZTFTRI ztftri_
#endif
extern void NAG_CALL ZTFTRI(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f07wxf_(transr, uplo, diag, n, a, info, length_transr, length_uplo, length_diag)  \
F07WXF(transr, length_transr, uplo, length_uplo, diag, length_diag, n, a, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f07wxf_ F07WXF
#else
#define F07WXF f07wxf_
#endif
extern void NAG_CALL F07WXF(
  CONST char * transr
#ifdef USE_STDCALL
,  CONST Charlen length_transr
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * diag
#ifdef USE_STDCALL
,  CONST Charlen length_diag
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_transr,
 CONST Charlen length_uplo,
 CONST Charlen length_diag
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgels_(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info, length_trans)  \
DGELS(trans, length_trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgels_ DGELS
#else
#define DGELS dgels_
#endif
extern void NAG_CALL DGELS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08aaf_(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info, length_trans)  \
F08AAF(trans, length_trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08aaf_ F08AAF
#else
#define F08AAF f08aaf_
#endif
extern void NAG_CALL F08AAF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgeqrf_ DGEQRF
#else
#define DGEQRF dgeqrf_
#endif
extern void NAG_CALL DGEQRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08aef_ F08AEF
#else
#define F08AEF f08aef_
#endif
extern void NAG_CALL F08AEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dorgqr_ DORGQR
#else
#define DORGQR dorgqr_
#endif
extern void NAG_CALL DORGQR(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08aff_ F08AFF
#else
#define F08AFF f08aff_
#endif
extern void NAG_CALL F08AFF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormqr_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
DORMQR(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormqr_ DORMQR
#else
#define DORMQR dormqr_
#endif
extern void NAG_CALL DORMQR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08agf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08AGF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08agf_ F08AGF
#else
#define F08AGF f08agf_
#endif
extern void NAG_CALL F08AGF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgelqf_ DGELQF
#else
#define DGELQF dgelqf_
#endif
extern void NAG_CALL DGELQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08ahf_ F08AHF
#else
#define F08AHF f08ahf_
#endif
extern void NAG_CALL F08AHF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dorglq_ DORGLQ
#else
#define DORGLQ dorglq_
#endif
extern void NAG_CALL DORGLQ(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08ajf_ F08AJF
#else
#define F08AJF f08ajf_
#endif
extern void NAG_CALL F08AJF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormlq_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
DORMLQ(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormlq_ DORMLQ
#else
#define DORMLQ dormlq_
#endif
extern void NAG_CALL DORMLQ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08akf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08AKF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08akf_ F08AKF
#else
#define F08AKF f08akf_
#endif
extern void NAG_CALL F08AKF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgels_(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info, length_trans)  \
ZGELS(trans, length_trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgels_ ZGELS
#else
#define ZGELS zgels_
#endif
extern void NAG_CALL ZGELS(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08anf_(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info, length_trans)  \
F08ANF(trans, length_trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08anf_ F08ANF
#else
#define F08ANF f08anf_
#endif
extern void NAG_CALL F08ANF(
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeqrf_ ZGEQRF
#else
#define ZGEQRF zgeqrf_
#endif
extern void NAG_CALL ZGEQRF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08asf_ F08ASF
#else
#define F08ASF f08asf_
#endif
extern void NAG_CALL F08ASF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zungqr_ ZUNGQR
#else
#define ZUNGQR zungqr_
#endif
extern void NAG_CALL ZUNGQR(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08atf_ F08ATF
#else
#define F08ATF f08atf_
#endif
extern void NAG_CALL F08ATF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmqr_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
ZUNMQR(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmqr_ ZUNMQR
#else
#define ZUNMQR zunmqr_
#endif
extern void NAG_CALL ZUNMQR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08auf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08AUF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08auf_ F08AUF
#else
#define F08AUF f08auf_
#endif
extern void NAG_CALL F08AUF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgelqf_ ZGELQF
#else
#define ZGELQF zgelqf_
#endif
extern void NAG_CALL ZGELQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08avf_ F08AVF
#else
#define F08AVF f08avf_
#endif
extern void NAG_CALL F08AVF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zunglq_ ZUNGLQ
#else
#define ZUNGLQ zunglq_
#endif
extern void NAG_CALL ZUNGLQ(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08awf_ F08AWF
#else
#define F08AWF f08awf_
#endif
extern void NAG_CALL F08AWF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmlq_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
ZUNMLQ(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmlq_ ZUNMLQ
#else
#define ZUNMLQ zunmlq_
#endif
extern void NAG_CALL ZUNMLQ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08axf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08AXF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08axf_ F08AXF
#else
#define F08AXF f08axf_
#endif
extern void NAG_CALL F08AXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgelsy_ DGELSY
#else
#define DGELSY dgelsy_
#endif
extern void NAG_CALL DGELSY(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer jpvt[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08baf_ F08BAF
#else
#define F08BAF f08baf_
#endif
extern void NAG_CALL F08BAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer jpvt[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dgeqpf_ DGEQPF
#else
#define DGEQPF dgeqpf_
#endif
extern void NAG_CALL DGEQPF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bef_ F08BEF
#else
#define F08BEF f08bef_
#endif
extern void NAG_CALL F08BEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dgeqp3_ DGEQP3
#else
#define DGEQP3 dgeqp3_
#endif
extern void NAG_CALL DGEQP3(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bff_ F08BFF
#else
#define F08BFF f08bff_
#endif
extern void NAG_CALL F08BFF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dtzrzf_ DTZRZF
#else
#define DTZRZF dtzrzf_
#endif
extern void NAG_CALL DTZRZF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bhf_ F08BHF
#else
#define F08BHF f08bhf_
#endif
extern void NAG_CALL F08BHF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormrz_(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
DORMRZ(side, length_side, trans, length_trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormrz_ DORMRZ
#else
#define DORMRZ dormrz_
#endif
extern void NAG_CALL DORMRZ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08bkf_(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08BKF(side, length_side, trans, length_trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08bkf_ F08BKF
#else
#define F08BKF f08bkf_
#endif
extern void NAG_CALL F08BKF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgelsy_ ZGELSY
#else
#define ZGELSY zgelsy_
#endif
extern void NAG_CALL ZGELSY(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer jpvt[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bnf_ F08BNF
#else
#define F08BNF f08bnf_
#endif
extern void NAG_CALL F08BNF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  Integer jpvt[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeqpf_ ZGEQPF
#else
#define ZGEQPF zgeqpf_
#endif
extern void NAG_CALL ZGEQPF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bsf_ F08BSF
#else
#define F08BSF f08bsf_
#endif
extern void NAG_CALL F08BSF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeqp3_ ZGEQP3
#else
#define ZGEQP3 zgeqp3_
#endif
extern void NAG_CALL ZGEQP3(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08btf_ F08BTF
#else
#define F08BTF f08btf_
#endif
extern void NAG_CALL F08BTF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Integer jpvt[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define ztzrzf_ ZTZRZF
#else
#define ZTZRZF ztzrzf_
#endif
extern void NAG_CALL ZTZRZF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08bvf_ F08BVF
#else
#define F08BVF f08bvf_
#endif
extern void NAG_CALL F08BVF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmrz_(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
ZUNMRZ(side, length_side, trans, length_trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmrz_ ZUNMRZ
#else
#define ZUNMRZ zunmrz_
#endif
extern void NAG_CALL ZUNMRZ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08bxf_(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08BXF(side, length_side, trans, length_trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08bxf_ F08BXF
#else
#define F08BXF f08bxf_
#endif
extern void NAG_CALL F08BXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  CONST Integer REFPTR l,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgeqlf_ DGEQLF
#else
#define DGEQLF dgeqlf_
#endif
extern void NAG_CALL DGEQLF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08cef_ F08CEF
#else
#define F08CEF f08cef_
#endif
extern void NAG_CALL F08CEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dorgql_ DORGQL
#else
#define DORGQL dorgql_
#endif
extern void NAG_CALL DORGQL(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08cff_ F08CFF
#else
#define F08CFF f08cff_
#endif
extern void NAG_CALL F08CFF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormql_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
DORMQL(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormql_ DORMQL
#else
#define DORMQL dormql_
#endif
extern void NAG_CALL DORMQL(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08cgf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08CGF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08cgf_ F08CGF
#else
#define F08CGF f08cgf_
#endif
extern void NAG_CALL F08CGF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgerqf_ DGERQF
#else
#define DGERQF dgerqf_
#endif
extern void NAG_CALL DGERQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08chf_ F08CHF
#else
#define F08CHF f08chf_
#endif
extern void NAG_CALL F08CHF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define dorgrq_ DORGRQ
#else
#define DORGRQ dorgrq_
#endif
extern void NAG_CALL DORGRQ(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08cjf_ F08CJF
#else
#define F08CJF f08cjf_
#endif
extern void NAG_CALL F08CJF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormrq_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
DORMRQ(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormrq_ DORMRQ
#else
#define DORMRQ dormrq_
#endif
extern void NAG_CALL DORMRQ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08ckf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08CKF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08ckf_ F08CKF
#else
#define F08CKF f08ckf_
#endif
extern void NAG_CALL F08CKF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgeqlf_ ZGEQLF
#else
#define ZGEQLF zgeqlf_
#endif
extern void NAG_CALL ZGEQLF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08csf_ F08CSF
#else
#define F08CSF f08csf_
#endif
extern void NAG_CALL F08CSF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zungql_ ZUNGQL
#else
#define ZUNGQL zungql_
#endif
extern void NAG_CALL ZUNGQL(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08ctf_ F08CTF
#else
#define F08CTF f08ctf_
#endif
extern void NAG_CALL F08CTF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmql_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
ZUNMQL(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmql_ ZUNMQL
#else
#define ZUNMQL zunmql_
#endif
extern void NAG_CALL ZUNMQL(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08cuf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08CUF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08cuf_ F08CUF
#else
#define F08CUF f08cuf_
#endif
extern void NAG_CALL F08CUF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgerqf_ ZGERQF
#else
#define ZGERQF zgerqf_
#endif
extern void NAG_CALL ZGERQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08cvf_ F08CVF
#else
#define F08CVF f08cvf_
#endif
extern void NAG_CALL F08CVF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define zungrq_ ZUNGRQ
#else
#define ZUNGRQ zungrq_
#endif
extern void NAG_CALL ZUNGRQ(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08cwf_ F08CWF
#else
#define F08CWF f08cwf_
#endif
extern void NAG_CALL F08CWF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmrq_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
ZUNMRQ(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmrq_ ZUNMRQ
#else
#define ZUNMRQ zunmrq_
#endif
extern void NAG_CALL ZUNMRQ(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08cxf_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_side, length_trans)  \
F08CXF(side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08cxf_ F08CXF
#else
#define F08CXF f08cxf_
#endif
extern void NAG_CALL F08CXF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyev_(jobz, uplo, n, a, lda, w, work, lwork, info, length_jobz, length_uplo)  \
DSYEV(jobz, length_jobz, uplo, length_uplo, n, a, lda, w, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyev_ DSYEV
#else
#define DSYEV dsyev_
#endif
extern void NAG_CALL DSYEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08faf_(jobz, uplo, n, a, lda, w, work, lwork, info, length_jobz, length_uplo)  \
F08FAF(jobz, length_jobz, uplo, length_uplo, n, a, lda, w, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08faf_ F08FAF
#else
#define F08FAF f08faf_
#endif
extern void NAG_CALL F08FAF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyevx_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
DSYEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyevx_ DSYEVX
#else
#define DSYEVX dsyevx_
#endif
extern void NAG_CALL DSYEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fbf_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08FBF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fbf_ F08FBF
#else
#define F08FBF f08fbf_
#endif
extern void NAG_CALL F08FBF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyevd_(job, uplo, n, a, lda, w, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
DSYEVD(job, length_job, uplo, length_uplo, n, a, lda, w, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyevd_ DSYEVD
#else
#define DSYEVD dsyevd_
#endif
extern void NAG_CALL DSYEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fcf_(job, uplo, n, a, lda, w, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
F08FCF(job, length_job, uplo, length_uplo, n, a, lda, w, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fcf_ F08FCF
#else
#define F08FCF f08fcf_
#endif
extern void NAG_CALL F08FCF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsyevr_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range, length_uplo)  \
DSYEVR(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsyevr_ DSYEVR
#else
#define DSYEVR dsyevr_
#endif
extern void NAG_CALL DSYEVR(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fdf_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range, length_uplo)  \
F08FDF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fdf_ F08FDF
#else
#define F08FDF f08fdf_
#endif
extern void NAG_CALL F08FDF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsytrd_(uplo, n, a, lda, d, e, tau, work, lwork, info, length_uplo)  \
DSYTRD(uplo, length_uplo, n, a, lda, d, e, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsytrd_ DSYTRD
#else
#define DSYTRD dsytrd_
#endif
extern void NAG_CALL DSYTRD(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fef_(uplo, n, a, lda, d, e, tau, work, lwork, info, length_uplo)  \
F08FEF(uplo, length_uplo, n, a, lda, d, e, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fef_ F08FEF
#else
#define F08FEF f08fef_
#endif
extern void NAG_CALL F08FEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dorgtr_(uplo, n, a, lda, tau, work, lwork, info, length_uplo)  \
DORGTR(uplo, length_uplo, n, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dorgtr_ DORGTR
#else
#define DORGTR dorgtr_
#endif
extern void NAG_CALL DORGTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fff_(uplo, n, a, lda, tau, work, lwork, info, length_uplo)  \
F08FFF(uplo, length_uplo, n, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fff_ F08FFF
#else
#define F08FFF f08fff_
#endif
extern void NAG_CALL F08FFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormtr_(side, uplo, trans, m, n, a, lda, tau, c, ldc, work, lwork, info, length_side, length_uplo, length_trans)  \
DORMTR(side, length_side, uplo, length_uplo, trans, length_trans, m, n, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormtr_ DORMTR
#else
#define DORMTR dormtr_
#endif
extern void NAG_CALL DORMTR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fgf_(side, uplo, trans, m, n, a, lda, tau, c, ldc, work, lwork, info, length_side, length_uplo, length_trans)  \
F08FGF(side, length_side, uplo, length_uplo, trans, length_trans, m, n, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fgf_ F08FGF
#else
#define F08FGF f08fgf_
#endif
extern void NAG_CALL F08FGF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
ddisna_(job, m, n, d, sep, info, length_job)  \
DDISNA(job, length_job, m, n, d, sep, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define ddisna_ DDISNA
#else
#define DDISNA ddisna_
#endif
extern void NAG_CALL DDISNA(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  double sep[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08flf_(job, m, n, d, sep, info, length_job)  \
F08FLF(job, length_job, m, n, d, sep, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08flf_ F08FLF
#else
#define F08FLF f08flf_
#endif
extern void NAG_CALL F08FLF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  double sep[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zheev_(jobz, uplo, n, a, lda, w, work, lwork, rwork, info, length_jobz, length_uplo)  \
ZHEEV(jobz, length_jobz, uplo, length_uplo, n, a, lda, w, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zheev_ ZHEEV
#else
#define ZHEEV zheev_
#endif
extern void NAG_CALL ZHEEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fnf_(jobz, uplo, n, a, lda, w, work, lwork, rwork, info, length_jobz, length_uplo)  \
F08FNF(jobz, length_jobz, uplo, length_uplo, n, a, lda, w, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fnf_ F08FNF
#else
#define F08FNF f08fnf_
#endif
extern void NAG_CALL F08FNF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zheevx_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
ZHEEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zheevx_ ZHEEVX
#else
#define ZHEEVX zheevx_
#endif
extern void NAG_CALL ZHEEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fpf_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08FPF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fpf_ F08FPF
#else
#define F08FPF f08fpf_
#endif
extern void NAG_CALL F08FPF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zheevd_(job, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
ZHEEVD(job, length_job, uplo, length_uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zheevd_ ZHEEVD
#else
#define ZHEEVD zheevd_
#endif
extern void NAG_CALL ZHEEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fqf_(job, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
F08FQF(job, length_job, uplo, length_uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fqf_ F08FQF
#else
#define F08FQF f08fqf_
#endif
extern void NAG_CALL F08FQF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double w[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zheevr_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info, length_jobz, length_range, length_uplo)  \
ZHEEVR(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zheevr_ ZHEEVR
#else
#define ZHEEVR zheevr_
#endif
extern void NAG_CALL ZHEEVR(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08frf_(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info, length_jobz, length_range, length_uplo)  \
F08FRF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08frf_ F08FRF
#else
#define F08FRF f08frf_
#endif
extern void NAG_CALL F08FRF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhetrd_(uplo, n, a, lda, d, e, tau, work, lwork, info, length_uplo)  \
ZHETRD(uplo, length_uplo, n, a, lda, d, e, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhetrd_ ZHETRD
#else
#define ZHETRD zhetrd_
#endif
extern void NAG_CALL ZHETRD(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fsf_(uplo, n, a, lda, d, e, tau, work, lwork, info, length_uplo)  \
F08FSF(uplo, length_uplo, n, a, lda, d, e, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fsf_ F08FSF
#else
#define F08FSF f08fsf_
#endif
extern void NAG_CALL F08FSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zungtr_(uplo, n, a, lda, tau, work, lwork, info, length_uplo)  \
ZUNGTR(uplo, length_uplo, n, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zungtr_ ZUNGTR
#else
#define ZUNGTR zungtr_
#endif
extern void NAG_CALL ZUNGTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08ftf_(uplo, n, a, lda, tau, work, lwork, info, length_uplo)  \
F08FTF(uplo, length_uplo, n, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08ftf_ F08FTF
#else
#define F08FTF f08ftf_
#endif
extern void NAG_CALL F08FTF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmtr_(side, uplo, trans, m, n, a, lda, tau, c, ldc, work, lwork, info, length_side, length_uplo, length_trans)  \
ZUNMTR(side, length_side, uplo, length_uplo, trans, length_trans, m, n, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmtr_ ZUNMTR
#else
#define ZUNMTR zunmtr_
#endif
extern void NAG_CALL ZUNMTR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08fuf_(side, uplo, trans, m, n, a, lda, tau, c, ldc, work, lwork, info, length_side, length_uplo, length_trans)  \
F08FUF(side, length_side, uplo, length_uplo, trans, length_trans, m, n, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08fuf_ F08FUF
#else
#define F08FUF f08fuf_
#endif
extern void NAG_CALL F08FUF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspev_(jobz, uplo, n, ap, w, z, ldz, work, info, length_jobz, length_uplo)  \
DSPEV(jobz, length_jobz, uplo, length_uplo, n, ap, w, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspev_ DSPEV
#else
#define DSPEV dspev_
#endif
extern void NAG_CALL DSPEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gaf_(jobz, uplo, n, ap, w, z, ldz, work, info, length_jobz, length_uplo)  \
F08GAF(jobz, length_jobz, uplo, length_uplo, n, ap, w, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gaf_ F08GAF
#else
#define F08GAF f08gaf_
#endif
extern void NAG_CALL F08GAF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspevx_(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
DSPEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspevx_ DSPEVX
#else
#define DSPEVX dspevx_
#endif
extern void NAG_CALL DSPEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gbf_(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08GBF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gbf_ F08GBF
#else
#define F08GBF f08gbf_
#endif
extern void NAG_CALL F08GBF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dspevd_(job, uplo, n, ap, w, z, ldz, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
DSPEVD(job, length_job, uplo, length_uplo, n, ap, w, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dspevd_ DSPEVD
#else
#define DSPEVD dspevd_
#endif
extern void NAG_CALL DSPEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gcf_(job, uplo, n, ap, w, z, ldz, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
F08GCF(job, length_job, uplo, length_uplo, n, ap, w, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gcf_ F08GCF
#else
#define F08GCF f08gcf_
#endif
extern void NAG_CALL F08GCF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsptrd_(uplo, n, ap, d, e, tau, info, length_uplo)  \
DSPTRD(uplo, length_uplo, n, ap, d, e, tau, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsptrd_ DSPTRD
#else
#define DSPTRD dsptrd_
#endif
extern void NAG_CALL DSPTRD(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gef_(uplo, n, ap, d, e, tau, info, length_uplo)  \
F08GEF(uplo, length_uplo, n, ap, d, e, tau, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gef_ F08GEF
#else
#define F08GEF f08gef_
#endif
extern void NAG_CALL F08GEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tau[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dopgtr_(uplo, n, ap, tau, q, ldq, work, info, length_uplo)  \
DOPGTR(uplo, length_uplo, n, ap, tau, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dopgtr_ DOPGTR
#else
#define DOPGTR dopgtr_
#endif
extern void NAG_CALL DOPGTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST double tau[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gff_(uplo, n, ap, tau, q, ldq, work, info, length_uplo)  \
F08GFF(uplo, length_uplo, n, ap, tau, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gff_ F08GFF
#else
#define F08GFF f08gff_
#endif
extern void NAG_CALL F08GFF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST double ap[] /* 1 dimension */,
  CONST double tau[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dopmtr_(side, uplo, trans, m, n, ap, tau, c, ldc, work, info, length_side, length_uplo, length_trans)  \
DOPMTR(side, length_side, uplo, length_uplo, trans, length_trans, m, n, ap, tau, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dopmtr_ DOPMTR
#else
#define DOPMTR dopmtr_
#endif
extern void NAG_CALL DOPMTR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08ggf_(side, uplo, trans, m, n, ap, tau, c, ldc, work, info, length_side, length_uplo, length_trans)  \
F08GGF(side, length_side, uplo, length_uplo, trans, length_trans, m, n, ap, tau, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08ggf_ F08GGF
#else
#define F08GGF f08ggf_
#endif
extern void NAG_CALL F08GGF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double ap[] /* 1 dimension */,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpev_(jobz, uplo, n, ap, w, z, ldz, work, rwork, info, length_jobz, length_uplo)  \
ZHPEV(jobz, length_jobz, uplo, length_uplo, n, ap, w, z, ldz, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpev_ ZHPEV
#else
#define ZHPEV zhpev_
#endif
extern void NAG_CALL ZHPEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gnf_(jobz, uplo, n, ap, w, z, ldz, work, rwork, info, length_jobz, length_uplo)  \
F08GNF(jobz, length_jobz, uplo, length_uplo, n, ap, w, z, ldz, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gnf_ F08GNF
#else
#define F08GNF f08gnf_
#endif
extern void NAG_CALL F08GNF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpevx_(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
ZHPEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpevx_ ZHPEVX
#else
#define ZHPEVX zhpevx_
#endif
extern void NAG_CALL ZHPEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gpf_(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08GPF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gpf_ F08GPF
#else
#define F08GPF f08gpf_
#endif
extern void NAG_CALL F08GPF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhpevd_(job, uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
ZHPEVD(job, length_job, uplo, length_uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhpevd_ ZHPEVD
#else
#define ZHPEVD zhpevd_
#endif
extern void NAG_CALL ZHPEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gqf_(job, uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
F08GQF(job, length_job, uplo, length_uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gqf_ F08GQF
#else
#define F08GQF f08gqf_
#endif
extern void NAG_CALL F08GQF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhptrd_(uplo, n, ap, d, e, tau, info, length_uplo)  \
ZHPTRD(uplo, length_uplo, n, ap, d, e, tau, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhptrd_ ZHPTRD
#else
#define ZHPTRD zhptrd_
#endif
extern void NAG_CALL ZHPTRD(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gsf_(uplo, n, ap, d, e, tau, info, length_uplo)  \
F08GSF(uplo, length_uplo, n, ap, d, e, tau, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gsf_ F08GSF
#else
#define F08GSF f08gsf_
#endif
extern void NAG_CALL F08GSF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tau[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zupgtr_(uplo, n, ap, tau, q, ldq, work, info, length_uplo)  \
ZUPGTR(uplo, length_uplo, n, ap, tau, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zupgtr_ ZUPGTR
#else
#define ZUPGTR zupgtr_
#endif
extern void NAG_CALL ZUPGTR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex tau[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08gtf_(uplo, n, ap, tau, q, ldq, work, info, length_uplo)  \
F08GTF(uplo, length_uplo, n, ap, tau, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08gtf_ F08GTF
#else
#define F08GTF f08gtf_
#endif
extern void NAG_CALL F08GTF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Complex ap[] /* 1 dimension */,
  CONST Complex tau[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zupmtr_(side, uplo, trans, m, n, ap, tau, c, ldc, work, info, length_side, length_uplo, length_trans)  \
ZUPMTR(side, length_side, uplo, length_uplo, trans, length_trans, m, n, ap, tau, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zupmtr_ ZUPMTR
#else
#define ZUPMTR zupmtr_
#endif
extern void NAG_CALL ZUPMTR(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08guf_(side, uplo, trans, m, n, ap, tau, c, ldc, work, info, length_side, length_uplo, length_trans)  \
F08GUF(side, length_side, uplo, length_uplo, trans, length_trans, m, n, ap, tau, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08guf_ F08GUF
#else
#define F08GUF f08guf_
#endif
extern void NAG_CALL F08GUF(
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex ap[] /* 1 dimension */,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_side,
 CONST Charlen length_uplo,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsbev_(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, info, length_jobz, length_uplo)  \
DSBEV(jobz, length_jobz, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsbev_ DSBEV
#else
#define DSBEV dsbev_
#endif
extern void NAG_CALL DSBEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08haf_(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, info, length_jobz, length_uplo)  \
F08HAF(jobz, length_jobz, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08haf_ F08HAF
#else
#define F08HAF f08haf_
#endif
extern void NAG_CALL F08HAF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsbevx_(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
DSBEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsbevx_ DSBEVX
#else
#define DSBEVX dsbevx_
#endif
extern void NAG_CALL DSBEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hbf_(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08HBF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hbf_ F08HBF
#else
#define F08HBF f08hbf_
#endif
extern void NAG_CALL F08HBF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsbevd_(job, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
DSBEVD(job, length_job, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsbevd_ DSBEVD
#else
#define DSBEVD dsbevd_
#endif
extern void NAG_CALL DSBEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hcf_(job, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, iwork, liwork, info, length_job, length_uplo)  \
F08HCF(job, length_job, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hcf_ F08HCF
#else
#define F08HCF f08hcf_
#endif
extern void NAG_CALL F08HCF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsbtrd_(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info, length_vect, length_uplo)  \
DSBTRD(vect, length_vect, uplo, length_uplo, n, kd, ab, ldab, d, e, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsbtrd_ DSBTRD
#else
#define DSBTRD dsbtrd_
#endif
extern void NAG_CALL DSBTRD(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hef_(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info, length_vect, length_uplo)  \
F08HEF(vect, length_vect, uplo, length_uplo, n, kd, ab, ldab, d, e, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hef_ F08HEF
#else
#define F08HEF f08hef_
#endif
extern void NAG_CALL F08HEF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhbev_(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, rwork, info, length_jobz, length_uplo)  \
ZHBEV(jobz, length_jobz, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhbev_ ZHBEV
#else
#define ZHBEV zhbev_
#endif
extern void NAG_CALL ZHBEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hnf_(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, rwork, info, length_jobz, length_uplo)  \
F08HNF(jobz, length_jobz, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hnf_ F08HNF
#else
#define F08HNF f08hnf_
#endif
extern void NAG_CALL F08HNF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhbevx_(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
ZHBEVX(jobz, length_jobz, range, length_range, uplo, length_uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhbevx_ ZHBEVX
#else
#define ZHBEVX zhbevx_
#endif
extern void NAG_CALL ZHBEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hpf_(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info, length_jobz, length_range, length_uplo)  \
F08HPF(jobz, length_jobz, range, length_range, uplo, length_uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hpf_ F08HPF
#else
#define F08HPF f08hpf_
#endif
extern void NAG_CALL F08HPF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhbevd_(job, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
ZHBEVD(job, length_job, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhbevd_ ZHBEVD
#else
#define ZHBEVD zhbevd_
#endif
extern void NAG_CALL ZHBEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hqf_(job, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_job, length_uplo)  \
F08HQF(job, length_job, uplo, length_uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hqf_ F08HQF
#else
#define F08HQF f08hqf_
#endif
extern void NAG_CALL F08HQF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zhbtrd_(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info, length_vect, length_uplo)  \
ZHBTRD(vect, length_vect, uplo, length_uplo, n, kd, ab, ldab, d, e, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zhbtrd_ ZHBTRD
#else
#define ZHBTRD zhbtrd_
#endif
extern void NAG_CALL ZHBTRD(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08hsf_(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info, length_vect, length_uplo)  \
F08HSF(vect, length_vect, uplo, length_uplo, n, kd, ab, ldab, d, e, q, ldq, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08hsf_ F08HSF
#else
#define F08HSF f08hsf_
#endif
extern void NAG_CALL F08HSF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR kd,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstev_(jobz, n, d, e, z, ldz, work, info, length_jobz)  \
DSTEV(jobz, length_jobz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstev_ DSTEV
#else
#define DSTEV dstev_
#endif
extern void NAG_CALL DSTEV(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jaf_(jobz, n, d, e, z, ldz, work, info, length_jobz)  \
F08JAF(jobz, length_jobz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jaf_ F08JAF
#else
#define F08JAF f08jaf_
#endif
extern void NAG_CALL F08JAF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstevx_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range)  \
DSTEVX(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstevx_ DSTEVX
#else
#define DSTEVX dstevx_
#endif
extern void NAG_CALL DSTEVX(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jbf_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info, length_jobz, length_range)  \
F08JBF(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, jfail, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jbf_ F08JBF
#else
#define F08JBF f08jbf_
#endif
extern void NAG_CALL F08JBF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer jfail[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstevd_(job, n, d, e, z, ldz, work, lwork, iwork, liwork, info, length_job)  \
DSTEVD(job, length_job, n, d, e, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstevd_ DSTEVD
#else
#define DSTEVD dstevd_
#endif
extern void NAG_CALL DSTEVD(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jcf_(job, n, d, e, z, ldz, work, lwork, iwork, liwork, info, length_job)  \
F08JCF(job, length_job, n, d, e, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jcf_ F08JCF
#else
#define F08JCF f08jcf_
#endif
extern void NAG_CALL F08JCF(
  CONST char * job
#ifdef USE_STDCALL
,  CONST Charlen length_job
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_job
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstevr_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
DSTEVR(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstevr_ DSTEVR
#else
#define DSTEVR dstevr_
#endif
extern void NAG_CALL DSTEVR(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jdf_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
F08JDF(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jdf_ F08JDF
#else
#define F08JDF f08jdf_
#endif
extern void NAG_CALL F08JDF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dsteqr_(compz, n, d, e, z, ldz, work, info, length_compz)  \
DSTEQR(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dsteqr_ DSTEQR
#else
#define DSTEQR dsteqr_
#endif
extern void NAG_CALL DSTEQR(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jef_(compz, n, d, e, z, ldz, work, info, length_compz)  \
F08JEF(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jef_ F08JEF
#else
#define F08JEF f08jef_
#endif
extern void NAG_CALL F08JEF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dsterf_ DSTERF
#else
#define DSTERF dsterf_
#endif
extern void NAG_CALL DSTERF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08jff_ F08JFF
#else
#define F08JFF f08jff_
#endif
extern void NAG_CALL F08JFF(
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dpteqr_(compz, n, d, e, z, ldz, work, info, length_compz)  \
DPTEQR(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dpteqr_ DPTEQR
#else
#define DPTEQR dpteqr_
#endif
extern void NAG_CALL DPTEQR(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jgf_(compz, n, d, e, z, ldz, work, info, length_compz)  \
F08JGF(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jgf_ F08JGF
#else
#define F08JGF f08jgf_
#endif
extern void NAG_CALL F08JGF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstedc_(compz, n, d, e, z, ldz, work, lwork, iwork, liwork, info, length_compz)  \
DSTEDC(compz, length_compz, n, d, e, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstedc_ DSTEDC
#else
#define DSTEDC dstedc_
#endif
extern void NAG_CALL DSTEDC(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jhf_(compz, n, d, e, z, ldz, work, lwork, iwork, liwork, info, length_compz)  \
F08JHF(compz, length_compz, n, d, e, z, ldz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jhf_ F08JHF
#else
#define F08JHF f08jhf_
#endif
extern void NAG_CALL F08JHF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstebz_(range, order, n, vl, vu, il, iu, abstol, d, e, m, nsplit, w, iblock, isplit, work, iwork, info, length_range, length_order)  \
DSTEBZ(range, length_range, order, length_order, n, vl, vu, il, iu, abstol, d, e, m, nsplit, w, iblock, isplit, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstebz_ DSTEBZ
#else
#define DSTEBZ dstebz_
#endif
extern void NAG_CALL DSTEBZ(
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * order
#ifdef USE_STDCALL
,  CONST Charlen length_order
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  Integer REFPTR m,
  Integer REFPTR nsplit,
  double w[] /* 1 dimension */,
  Integer iblock[] /* 1 dimension */,
  Integer isplit[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_range,
 CONST Charlen length_order
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jjf_(range, order, n, vl, vu, il, iu, abstol, d, e, m, nsplit, w, iblock, isplit, work, iwork, info, length_range, length_order)  \
F08JJF(range, length_range, order, length_order, n, vl, vu, il, iu, abstol, d, e, m, nsplit, w, iblock, isplit, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jjf_ F08JJF
#else
#define F08JJF f08jjf_
#endif
extern void NAG_CALL F08JJF(
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST char * order
#ifdef USE_STDCALL
,  CONST Charlen length_order
#endif
,
  CONST Integer REFPTR n,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  Integer REFPTR m,
  Integer REFPTR nsplit,
  double w[] /* 1 dimension */,
  Integer iblock[] /* 1 dimension */,
  Integer isplit[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_range,
 CONST Charlen length_order
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dstein_ DSTEIN
#else
#define DSTEIN dstein_
#endif
extern void NAG_CALL DSTEIN(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double w[] /* 1 dimension */,
  CONST Integer iblock[] /* 1 dimension */,
  CONST Integer isplit[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer ifailv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08jkf_ F08JKF
#else
#define F08JKF f08jkf_
#endif
extern void NAG_CALL F08JKF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double w[] /* 1 dimension */,
  CONST Integer iblock[] /* 1 dimension */,
  CONST Integer isplit[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer ifailv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dstegr_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
DSTEGR(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dstegr_ DSTEGR
#else
#define DSTEGR dstegr_
#endif
extern void NAG_CALL DSTEGR(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jlf_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
F08JLF(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jlf_ F08JLF
#else
#define F08JLF f08jlf_
#endif
extern void NAG_CALL F08JLF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  double z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zsteqr_(compz, n, d, e, z, ldz, work, info, length_compz)  \
ZSTEQR(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zsteqr_ ZSTEQR
#else
#define ZSTEQR zsteqr_
#endif
extern void NAG_CALL ZSTEQR(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jsf_(compz, n, d, e, z, ldz, work, info, length_compz)  \
F08JSF(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jsf_ F08JSF
#else
#define F08JSF f08jsf_
#endif
extern void NAG_CALL F08JSF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zpteqr_(compz, n, d, e, z, ldz, work, info, length_compz)  \
ZPTEQR(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zpteqr_ ZPTEQR
#else
#define ZPTEQR zpteqr_
#endif
extern void NAG_CALL ZPTEQR(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08juf_(compz, n, d, e, z, ldz, work, info, length_compz)  \
F08JUF(compz, length_compz, n, d, e, z, ldz, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08juf_ F08JUF
#else
#define F08JUF f08juf_
#endif
extern void NAG_CALL F08JUF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zstedc_(compz, n, d, e, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_compz)  \
ZSTEDC(compz, length_compz, n, d, e, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zstedc_ ZSTEDC
#else
#define ZSTEDC zstedc_
#endif
extern void NAG_CALL ZSTEDC(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jvf_(compz, n, d, e, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info, length_compz)  \
F08JVF(compz, length_compz, n, d, e, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jvf_ F08JVF
#else
#define F08JVF f08jvf_
#endif
extern void NAG_CALL F08JVF(
  CONST char * compz
#ifdef USE_STDCALL
,  CONST Charlen length_compz
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  CONST Integer REFPTR lrwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_compz
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zstein_ ZSTEIN
#else
#define ZSTEIN zstein_
#endif
extern void NAG_CALL ZSTEIN(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double w[] /* 1 dimension */,
  CONST Integer iblock[] /* 1 dimension */,
  CONST Integer isplit[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer ifailv[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08jxf_ F08JXF
#else
#define F08JXF f08jxf_
#endif
extern void NAG_CALL F08JXF(
  CONST Integer REFPTR n,
  CONST double d[] /* 1 dimension */,
  CONST double e[] /* 1 dimension */,
  CONST Integer REFPTR m,
  CONST double w[] /* 1 dimension */,
  CONST Integer iblock[] /* 1 dimension */,
  CONST Integer isplit[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer ifailv[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zstegr_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
ZSTEGR(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zstegr_ ZSTEGR
#else
#define ZSTEGR zstegr_
#endif
extern void NAG_CALL ZSTEGR(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08jyf_(jobz, range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info, length_jobz, length_range)  \
F08JYF(jobz, length_jobz, range, length_range, n, d, e, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, iwork, liwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08jyf_ F08JYF
#else
#define F08JYF f08jyf_
#endif
extern void NAG_CALL F08JYF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST char * range
#ifdef USE_STDCALL
,  CONST Charlen length_range
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  CONST double REFPTR vl,
  CONST double REFPTR vu,
  CONST Integer REFPTR il,
  CONST Integer REFPTR iu,
  CONST double REFPTR abstol,
  Integer REFPTR m,
  double w[] /* 1 dimension */,
  Complex z[] /* 2 dimension */,
  CONST Integer REFPTR ldz,
  Integer isuppz[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  CONST Integer REFPTR liwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz,
 CONST Charlen length_range
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgelss_ DGELSS
#else
#define DGELSS dgelss_
#endif
extern void NAG_CALL DGELSS(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08kaf_ F08KAF
#else
#define F08KAF f08kaf_
#endif
extern void NAG_CALL F08KAF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgesvd_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info, length_jobu, length_jobvt)  \
DGESVD(jobu, length_jobu, jobvt, length_jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgesvd_ DGESVD
#else
#define DGESVD dgesvd_
#endif
extern void NAG_CALL DGESVD(
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobvt
#ifdef USE_STDCALL
,  CONST Charlen length_jobvt
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobu,
 CONST Charlen length_jobvt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kbf_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info, length_jobu, length_jobvt)  \
F08KBF(jobu, length_jobu, jobvt, length_jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kbf_ F08KBF
#else
#define F08KBF f08kbf_
#endif
extern void NAG_CALL F08KBF(
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobvt
#ifdef USE_STDCALL
,  CONST Charlen length_jobvt
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobu,
 CONST Charlen length_jobvt
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgelsd_ DGELSD
#else
#define DGELSD dgelsd_
#endif
extern void NAG_CALL DGELSD(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08kcf_ F08KCF
#else
#define F08KCF f08kcf_
#endif
extern void NAG_CALL F08KCF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgesdd_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info, length_jobz)  \
DGESDD(jobz, length_jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgesdd_ DGESDD
#else
#define DGESDD dgesdd_
#endif
extern void NAG_CALL DGESDD(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kdf_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info, length_jobz)  \
F08KDF(jobz, length_jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kdf_ F08KDF
#else
#define F08KDF f08kdf_
#endif
extern void NAG_CALL F08KDF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define dgebrd_ DGEBRD
#else
#define DGEBRD dgebrd_
#endif
extern void NAG_CALL DGEBRD(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tauq[] /* 1 dimension */,
  double taup[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08kef_ F08KEF
#else
#define F08KEF f08kef_
#endif
extern void NAG_CALL F08KEF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double tauq[] /* 1 dimension */,
  double taup[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dorgbr_(vect, m, n, k, a, lda, tau, work, lwork, info, length_vect)  \
DORGBR(vect, length_vect, m, n, k, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dorgbr_ DORGBR
#else
#define DORGBR dorgbr_
#endif
extern void NAG_CALL DORGBR(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kff_(vect, m, n, k, a, lda, tau, work, lwork, info, length_vect)  \
F08KFF(vect, length_vect, m, n, k, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kff_ F08KFF
#else
#define F08KFF f08kff_
#endif
extern void NAG_CALL F08KFF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dormbr_(vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_vect, length_side, length_trans)  \
DORMBR(vect, length_vect, side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dormbr_ DORMBR
#else
#define DORMBR dormbr_
#endif
extern void NAG_CALL DORMBR(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kgf_(vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_vect, length_side, length_trans)  \
F08KGF(vect, length_vect, side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kgf_ F08KGF
#else
#define F08KGF f08kgf_
#endif
extern void NAG_CALL F08KGF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST double tau[] /* 1 dimension */,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgejsv_(joba, jobu, jobv, jobr, jobt, jobp, m, n, a, lda, sva, u, ldu, v, ldv, work, lwork, iwork, info, length_joba, length_jobu, length_jobv, length_jobr, length_jobt, length_jobp)  \
DGEJSV(joba, length_joba, jobu, length_jobu, jobv, length_jobv, jobr, length_jobr, jobt, length_jobt, jobp, length_jobp, m, n, a, lda, sva, u, ldu, v, ldv, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgejsv_ DGEJSV
#else
#define DGEJSV dgejsv_
#endif
extern void NAG_CALL DGEJSV(
  CONST char * joba
#ifdef USE_STDCALL
,  CONST Charlen length_joba
#endif
,
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobv
#ifdef USE_STDCALL
,  CONST Charlen length_jobv
#endif
,
  CONST char * jobr
#ifdef USE_STDCALL
,  CONST Charlen length_jobr
#endif
,
  CONST char * jobt
#ifdef USE_STDCALL
,  CONST Charlen length_jobt
#endif
,
  CONST char * jobp
#ifdef USE_STDCALL
,  CONST Charlen length_jobp
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double sva[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_joba,
 CONST Charlen length_jobu,
 CONST Charlen length_jobv,
 CONST Charlen length_jobr,
 CONST Charlen length_jobt,
 CONST Charlen length_jobp
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08khf_(joba, jobu, jobv, jobr, jobt, jobp, m, n, a, lda, sva, u, ldu, v, ldv, work, lwork, iwork, info, length_joba, length_jobu, length_jobv, length_jobr, length_jobt, length_jobp)  \
F08KHF(joba, length_joba, jobu, length_jobu, jobv, length_jobv, jobr, length_jobr, jobt, length_jobt, jobp, length_jobp, m, n, a, lda, sva, u, ldu, v, ldv, work, lwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08khf_ F08KHF
#else
#define F08KHF f08khf_
#endif
extern void NAG_CALL F08KHF(
  CONST char * joba
#ifdef USE_STDCALL
,  CONST Charlen length_joba
#endif
,
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobv
#ifdef USE_STDCALL
,  CONST Charlen length_jobv
#endif
,
  CONST char * jobr
#ifdef USE_STDCALL
,  CONST Charlen length_jobr
#endif
,
  CONST char * jobt
#ifdef USE_STDCALL
,  CONST Charlen length_jobt
#endif
,
  CONST char * jobp
#ifdef USE_STDCALL
,  CONST Charlen length_jobp
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double sva[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_joba,
 CONST Charlen length_jobu,
 CONST Charlen length_jobv,
 CONST Charlen length_jobr,
 CONST Charlen length_jobt,
 CONST Charlen length_jobp
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgesvj_(joba, jobu, jobv, m, n, a, lda, sva, mv, v, ldv, work, lwork, info, length_joba, length_jobu, length_jobv)  \
DGESVJ(joba, length_joba, jobu, length_jobu, jobv, length_jobv, m, n, a, lda, sva, mv, v, ldv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgesvj_ DGESVJ
#else
#define DGESVJ dgesvj_
#endif
extern void NAG_CALL DGESVJ(
  CONST char * joba
#ifdef USE_STDCALL
,  CONST Charlen length_joba
#endif
,
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobv
#ifdef USE_STDCALL
,  CONST Charlen length_jobv
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double sva[] /* 1 dimension */,
  CONST Integer REFPTR mv,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_joba,
 CONST Charlen length_jobu,
 CONST Charlen length_jobv
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kjf_(joba, jobu, jobv, m, n, a, lda, sva, mv, v, ldv, work, lwork, info, length_joba, length_jobu, length_jobv)  \
F08KJF(joba, length_joba, jobu, length_jobu, jobv, length_jobv, m, n, a, lda, sva, mv, v, ldv, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kjf_ F08KJF
#else
#define F08KJF f08kjf_
#endif
extern void NAG_CALL F08KJF(
  CONST char * joba
#ifdef USE_STDCALL
,  CONST Charlen length_joba
#endif
,
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobv
#ifdef USE_STDCALL
,  CONST Charlen length_jobv
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  double a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double sva[] /* 1 dimension */,
  CONST Integer REFPTR mv,
  double v[] /* 2 dimension */,
  CONST Integer REFPTR ldv,
  double work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_joba,
 CONST Charlen length_jobu,
 CONST Charlen length_jobv
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgelss_ ZGELSS
#else
#define ZGELSS zgelss_
#endif
extern void NAG_CALL ZGELSS(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08knf_ F08KNF
#else
#define F08KNF f08knf_
#endif
extern void NAG_CALL F08KNF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgesvd_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info, length_jobu, length_jobvt)  \
ZGESVD(jobu, length_jobu, jobvt, length_jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgesvd_ ZGESVD
#else
#define ZGESVD zgesvd_
#endif
extern void NAG_CALL ZGESVD(
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobvt
#ifdef USE_STDCALL
,  CONST Charlen length_jobvt
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  Complex u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  Complex vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobu,
 CONST Charlen length_jobvt
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kpf_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info, length_jobu, length_jobvt)  \
F08KPF(jobu, length_jobu, jobvt, length_jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kpf_ F08KPF
#else
#define F08KPF f08kpf_
#endif
extern void NAG_CALL F08KPF(
  CONST char * jobu
#ifdef USE_STDCALL
,  CONST Charlen length_jobu
#endif
,
  CONST char * jobvt
#ifdef USE_STDCALL
,  CONST Charlen length_jobvt
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  Complex u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  Complex vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobu,
 CONST Charlen length_jobvt
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgelsd_ ZGELSD
#else
#define ZGELSD zgelsd_
#endif
extern void NAG_CALL ZGELSD(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08kqf_ F08KQF
#else
#define F08KQF f08kqf_
#endif
extern void NAG_CALL F08KQF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR nrhs,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  Complex b[] /* 2 dimension */,
  CONST Integer REFPTR ldb,
  double s[] /* 1 dimension */,
  CONST double REFPTR rcond,
  Integer REFPTR rank,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgesdd_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info, length_jobz)  \
ZGESDD(jobz, length_jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgesdd_ ZGESDD
#else
#define ZGESDD zgesdd_
#endif
extern void NAG_CALL ZGESDD(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  Complex u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  Complex vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08krf_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info, length_jobz)  \
F08KRF(jobz, length_jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08krf_ F08KRF
#else
#define F08KRF f08krf_
#endif
extern void NAG_CALL F08KRF(
  CONST char * jobz
#ifdef USE_STDCALL
,  CONST Charlen length_jobz
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double s[] /* 1 dimension */,
  Complex u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  Complex vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  double rwork[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_jobz
#endif
);
#if defined (_WIN32) || defined (_WIN64)
#define zgebrd_ ZGEBRD
#else
#define ZGEBRD zgebrd_
#endif
extern void NAG_CALL ZGEBRD(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tauq[] /* 1 dimension */,
  Complex taup[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);
#if defined (_WIN32) || defined (_WIN64)
#define f08ksf_ F08KSF
#else
#define F08KSF f08ksf_
#endif
extern void NAG_CALL F08KSF(
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex tauq[] /* 1 dimension */,
  Complex taup[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zungbr_(vect, m, n, k, a, lda, tau, work, lwork, info, length_vect)  \
ZUNGBR(vect, length_vect, m, n, k, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zungbr_ ZUNGBR
#else
#define ZUNGBR zungbr_
#endif
extern void NAG_CALL ZUNGBR(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08ktf_(vect, m, n, k, a, lda, tau, work, lwork, info, length_vect)  \
F08KTF(vect, length_vect, m, n, k, a, lda, tau, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08ktf_ F08KTF
#else
#define F08KTF f08ktf_
#endif
extern void NAG_CALL F08KTF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zunmbr_(vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_vect, length_side, length_trans)  \
ZUNMBR(vect, length_vect, side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zunmbr_ ZUNMBR
#else
#define ZUNMBR zunmbr_
#endif
extern void NAG_CALL ZUNMBR(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08kuf_(vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info, length_vect, length_side, length_trans)  \
F08KUF(vect, length_vect, side, length_side, trans, length_trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08kuf_ F08KUF
#else
#define F08KUF f08kuf_
#endif
extern void NAG_CALL F08KUF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST char * side
#ifdef USE_STDCALL
,  CONST Charlen length_side
#endif
,
  CONST char * trans
#ifdef USE_STDCALL
,  CONST Charlen length_trans
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR k,
  Complex a[] /* 2 dimension */,
  CONST Integer REFPTR lda,
  CONST Complex tau[] /* 1 dimension */,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  CONST Integer REFPTR lwork,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect,
 CONST Charlen length_side,
 CONST Charlen length_trans
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dgbbrd_(vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info, length_vect)  \
DGBBRD(vect, length_vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dgbbrd_ DGBBRD
#else
#define DGBBRD dgbbrd_
#endif
extern void NAG_CALL DGBBRD(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncc,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double pt[] /* 2 dimension */,
  CONST Integer REFPTR ldpt,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08lef_(vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info, length_vect)  \
F08LEF(vect, length_vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08lef_ F08LEF
#else
#define F08LEF f08lef_
#endif
extern void NAG_CALL F08LEF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncc,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  double ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  double pt[] /* 2 dimension */,
  CONST Integer REFPTR ldpt,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zgbbrd_(vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info, length_vect)  \
ZGBBRD(vect, length_vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zgbbrd_ ZGBBRD
#else
#define ZGBBRD zgbbrd_
#endif
extern void NAG_CALL ZGBBRD(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncc,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex pt[] /* 2 dimension */,
  CONST Integer REFPTR ldpt,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08lsf_(vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info, length_vect)  \
F08LSF(vect, length_vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08lsf_ F08LSF
#else
#define F08LSF f08lsf_
#endif
extern void NAG_CALL F08LSF(
  CONST char * vect
#ifdef USE_STDCALL
,  CONST Charlen length_vect
#endif
,
  CONST Integer REFPTR m,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncc,
  CONST Integer REFPTR kl,
  CONST Integer REFPTR ku,
  Complex ab[] /* 2 dimension */,
  CONST Integer REFPTR ldab,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  Complex q[] /* 2 dimension */,
  CONST Integer REFPTR ldq,
  Complex pt[] /* 2 dimension */,
  CONST Integer REFPTR ldpt,
  Complex c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  Complex work[] /* 1 dimension */,
  double rwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_vect
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dbdsdc_(uplo, compq, n, d, e, u, ldu, vt, ldvt, q, iq, work, iwork, info, length_uplo, length_compq)  \
DBDSDC(uplo, length_uplo, compq, length_compq, n, d, e, u, ldu, vt, ldvt, q, iq, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dbdsdc_ DBDSDC
#else
#define DBDSDC dbdsdc_
#endif
extern void NAG_CALL DBDSDC(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * compq
#ifdef USE_STDCALL
,  CONST Charlen length_compq
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double q[] /* 1 dimension */,
  Integer iq[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_compq
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08mdf_(uplo, compq, n, d, e, u, ldu, vt, ldvt, q, iq, work, iwork, info, length_uplo, length_compq)  \
F08MDF(uplo, length_uplo, compq, length_compq, n, d, e, u, ldu, vt, ldvt, q, iq, work, iwork, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08mdf_ F08MDF
#else
#define F08MDF f08mdf_
#endif
extern void NAG_CALL F08MDF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST char * compq
#ifdef USE_STDCALL
,  CONST Charlen length_compq
#endif
,
  CONST Integer REFPTR n,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double q[] /* 1 dimension */,
  Integer iq[] /* 1 dimension */,
  double work[] /* 1 dimension */,
  Integer iwork[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo,
 CONST Charlen length_compq
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
dbdsqr_(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info, length_uplo)  \
DBDSQR(uplo, length_uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define dbdsqr_ DBDSQR
#else
#define DBDSQR dbdsqr_
#endif
extern void NAG_CALL DBDSQR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncvt,
  CONST Integer REFPTR nru,
  CONST Integer REFPTR ncc,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
f08mef_(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info, length_uplo)  \
F08MEF(uplo, length_uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define f08mef_ F08MEF
#else
#define F08MEF f08mef_
#endif
extern void NAG_CALL F08MEF(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncvt,
  CONST Integer REFPTR nru,
  CONST Integer REFPTR ncc,
  double d[] /* 1 dimension */,
  double e[] /* 1 dimension */,
  double vt[] /* 2 dimension */,
  CONST Integer REFPTR ldvt,
  double u[] /* 2 dimension */,
  CONST Integer REFPTR ldu,
  double c[] /* 2 dimension */,
  CONST Integer REFPTR ldc,
  double work[] /* 1 dimension */,
  Integer REFPTR info
#ifndef USE_STDCALL
, CONST Charlen length_uplo
#endif
);

#if defined (_WIN32) && defined (USE_STDCALL)
#define \
zbdsqr_(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info, length_uplo)  \
ZBDSQR(uplo, length_uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info) 
#elif defined (_WIN32) || defined (_WIN64)
#define zbdsqr_ ZBDSQR
#else
#define ZBDSQR zbdsqr_
#endif
extern void NAG_CALL ZBDSQR(
  CONST char * uplo
#ifdef USE_STDCALL
,  CONST Charlen length_uplo
#endif
,
  CONST Integer REFPTR n,
  CONST Integer REFPTR ncvt,
  CONST Integer REFPTR nru,
  