15#ifdef HAVE_TEUCHOSCORE_QUADMATH 
   18#ifdef HAVE_TEUCHOS_LONG_DOUBLE 
   31#if defined (INTEL_CXML) 
   32#define CHAR_MACRO(char_var) &char_var, one 
   34#define CHAR_MACRO(char_var) &char_var 
   40#if defined (INTEL_CXML) 
   41#define CHARPTR_MACRO(charptr_var) charptr_var, one 
   43#define CHARPTR_MACRO(charptr_var) charptr_var 
   48#if defined (INTEL_CXML) 
   58  const int* ispec, 
const char* name, 
const unsigned int& name_length,
 
   59  const char* opts, 
const unsigned int& opts_length,
 
   60  const int* N1, 
const int* N2, 
const int* N3, 
const int* N4 )
 
   62#if defined (INTEL_CXML) 
   63    return ILAENV_F77(ispec, name, name_length, opts, opts_length, N1, N2, N3, N4 );
 
   65    return ILAENV_F77(ispec, name, opts, N1, N2, N3, N4, name_length, opts_length );
 
   76typedef int (*gees_nullfptr_t)(
double*,
double*);
 
   87  { SPTTRF_F77(&n,d,
e,info); }
 
 
   95  { SPOTRF_F77(CHAR_MACRO(UPLO), &n, 
A, &
lda, info); }
 
 
   99  { SPOTRS_F77(CHAR_MACRO(UPLO), &n, &
nrhs, 
A, &
lda, 
B, &
ldb, info); }
 
 
  103  { SPOTRI_F77(CHAR_MACRO(UPLO), &n, 
A, &
lda, info); }
 
 
  111  { SPOSV_F77(CHAR_MACRO(UPLO), &n, &
nrhs, 
A, &
lda, 
B, &
ldb, info); }
 
 
  117  void LAPACK<int, float>::PORFS(
const char& UPLO, 
const int& n, 
const int& 
nrhs, 
const float* 
A, 
const int& 
lda, 
const float* 
AF, 
const int& 
ldaf, 
const float* 
B, 
const int& 
ldb, 
float* 
X, 
const int& 
ldx, 
float* FERR, 
float* BERR, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  118  { SPORFS_F77(CHAR_MACRO(UPLO), &n, &
nrhs, 
A, &
lda, 
AF, &
ldaf, 
B, &
ldb, 
X, &
ldx, FERR, BERR, 
WORK, 
IWORK, info); }
 
 
  120  void LAPACK<int, float>::POSVX(
const char& 
FACT, 
const char& UPLO, 
const int& n, 
const int& 
nrhs, 
float* 
A, 
const int& 
lda, 
float* 
AF, 
const int& 
ldaf, 
char* 
EQUED, 
float* 
S, 
float* 
B, 
const int& 
ldb, 
float* 
X, 
const int& 
ldx, 
float* 
rcond, 
float* FERR, 
float* BERR, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  121  { SPOSVX_F77(CHAR_MACRO(
FACT), CHAR_MACRO(UPLO), &n, &
nrhs, 
A, &
lda, 
AF, &
ldaf, CHARPTR_MACRO(
EQUED), 
S, 
B, &
ldb, 
X, &
ldx, 
rcond, FERR, BERR, 
WORK, 
IWORK, info); }
 
 
  124  void LAPACK<int,float>::GELS(
const char& 
TRANS, 
const int& 
m, 
const int& n, 
const int& 
nrhs, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  125  { SGELS_F77(CHAR_MACRO(
TRANS), &
m, &n, &
nrhs, 
A, &
lda, 
B, &
ldb, 
WORK, &
lwork, info); }
 
 
  127  void LAPACK<int,float>::GELSS (
const int& 
m, 
const int& n, 
const int& 
nrhs, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
S, 
const float& 
rcond, 
int* rank, 
float* 
WORK, 
const int& 
lwork, 
float* 
rwork, 
int* info)
 const 
  130    SGELSS_F77(&
m, &n, &
nrhs, 
A, &
lda, 
B, &
ldb, 
S, &
rcond, rank, 
WORK, &
lwork, info);
 
  133  void LAPACK<int,float>::GELSS(
const int& m, 
const int& n, 
const int& nrhs, 
float* A, 
const int& lda, 
float* B, 
const int& ldb, 
float* S, 
const float& rcond, 
int* rank, 
float* WORK, 
const int& lwork, 
int* info)
 const 
  134  { SGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
 
  137  void LAPACK<int,float>::GGLSE(
const int& 
m, 
const int& n, 
const int& 
p, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* C, 
float* D, 
float* 
X, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  138  { SGGLSE_F77(&
m, &n, &
p, 
A, &
lda, 
B, &
ldb, C, D, 
X, 
WORK, &
lwork, info); }
 
 
  150  { SGETRF_F77(&
m, &n, 
A, &
lda, IPIV, info); }
 
 
  157  void LAPACK<int,float>::LASCL(
const char& 
TYPE, 
const int& 
kl, 
const int& 
ku, 
const float& 
cfrom, 
const float& 
cto, 
const int& 
m, 
const int& n, 
float* 
A, 
const int& 
lda, 
int* info)
 const 
 
  160  void LAPACK<int,float>::GEQP3 (
const int& 
m, 
const int& n, 
float* 
A, 
const int& 
lda, 
int* 
jpvt, 
float* 
TAU, 
float* 
WORK, 
const int& 
lwork, 
float* 
RWORK, 
int* info)
 const 
 
  172  { SGBTRF_F77(&
m, &n, &
kl, &
ku, 
A, &
lda, IPIV, info); }
 
 
  175  void LAPACK<int,float>::GBTRS(
const char& 
TRANS, 
const int& n, 
const int& 
kl, 
const int& 
ku, 
const int& 
nrhs, 
const float* 
A, 
const int& 
lda, 
const int* IPIV, 
float* 
B, 
const int& 
ldb, 
int* info)
 const 
  176  { SGBTRS_F77(CHAR_MACRO(
TRANS), &n, &
kl, &
ku, &
nrhs, 
A, &
lda, IPIV, 
B, &
ldb, info); }
 
 
  180  { SGTTRF_F77(&n, 
dl, d, 
du, 
du2, IPIV, info); }
 
 
  183  void LAPACK<int,float>::GTTRS(
const char& 
TRANS, 
const int& n, 
const int& 
nrhs, 
const float* 
dl, 
const float* d, 
const float* 
du, 
const float* 
du2, 
const int* IPIV, 
float* 
B, 
const int& 
ldb, 
int* info)
 const 
  184  { SGTTRS_F77(CHAR_MACRO(
TRANS), &n, &
nrhs, 
dl, d, 
du, 
du2, IPIV, 
B, &
ldb, info); }
 
 
  190  void LAPACK<int, float>::LATRS (
const char& UPLO, 
const char& 
TRANS, 
const char& 
DIAG, 
const char& 
NORMIN, 
const int& 
N, 
const float* 
A, 
const int& 
LDA, 
float* 
X, 
float* 
SCALE, 
float* 
CNORM, 
int* 
INFO)
 const 
  192    SLATRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(
DIAG), CHAR_MACRO(
NORMIN), &
N, 
A, &
LDA, 
X, 
SCALE, 
CNORM, 
INFO);
 
 
  199  void LAPACK<int,float>::GBCON(
const char& 
NORM, 
const int& n, 
const int& 
kl, 
const int& 
ku, 
const float* 
A, 
const int& 
lda, 
const int* IPIV, 
const float& 
anorm, 
float* 
rcond, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  200  { SGBCON_F77(CHAR_MACRO(
NORM), &n, &
kl, &
ku, 
A, &
lda, IPIV, &
anorm, 
rcond, 
WORK, 
IWORK, info); }
 
 
  211  void LAPACK<int,float>::GEEQU(
const int& 
m, 
const int& n, 
const float* 
A, 
const int& 
lda, 
float* R, 
float* C, 
float* 
rowcond, 
float* 
colcond, 
float* 
amax, 
int* info)
 const 
 
  215  void LAPACK<int,float>::GERFS(
const char& 
TRANS, 
const int& n, 
const int& 
nrhs, 
const float* 
A, 
const int& 
lda, 
const float* 
AF, 
const int& 
ldaf, 
const int* IPIV, 
const float* 
B, 
const int& 
ldb, 
float* 
X, 
const int& 
ldx, 
float* FERR, 
float* BERR, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  216  { SGERFS_F77(CHAR_MACRO(
TRANS), &n, &
nrhs, 
A, &
lda, 
AF, &
ldaf, IPIV, 
B, &
ldb, 
X, &
ldx, FERR, BERR, 
WORK, 
IWORK, info); }
 
 
  219  void LAPACK<int,float>::GBEQU(
const int& 
m, 
const int& n, 
const int& 
kl, 
const int& 
ku, 
const float* 
A, 
const int& 
lda, 
float* R, 
float* C, 
float* 
rowcond, 
float* 
colcond, 
float* 
amax, 
int* info)
 const 
  220  { SGBEQU_F77(&
m, &n, &
kl, &
ku, 
A, &
lda, R, C, 
rowcond, 
colcond, 
amax, info); }
 
 
  223  void LAPACK<int,float>::GBRFS(
const char& 
TRANS, 
const int& n, 
const int& 
kl, 
const int& 
ku, 
const int& 
nrhs, 
const float* 
A, 
const int& 
lda, 
const float* 
AF, 
const int& 
ldaf, 
const int* IPIV, 
const float* 
B, 
const int& 
ldb, 
float* 
X, 
const int& 
ldx, 
float* FERR, 
float* BERR, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  224  { SGBRFS_F77(CHAR_MACRO(
TRANS), &n, &
kl, &
ku, &
nrhs, 
A, &
lda, 
AF, &
ldaf, IPIV, 
B, &
ldb, 
X, &
ldx, FERR, BERR, 
WORK, 
IWORK, info); }
 
 
  226  void LAPACK<int,float>::GESVX(
const char& 
FACT, 
const char& 
TRANS, 
const int& n, 
const int& 
nrhs, 
float* 
A, 
const int& 
lda, 
float* 
AF, 
const int& 
ldaf, 
int* IPIV, 
char* 
EQUED, 
float* R, 
float* C, 
float* 
B, 
const int& 
ldb, 
float* 
X, 
const int& 
ldx, 
float* 
rcond, 
float* FERR, 
float* BERR, 
float* 
WORK, 
int* 
IWORK, 
int* info)
 const 
  227  { SGESVX_F77(CHAR_MACRO(
FACT), CHAR_MACRO(
TRANS), &n, &
nrhs, 
A, &
lda, 
AF, &
ldaf, IPIV, CHARPTR_MACRO(
EQUED), R, C, 
B, &
ldb, 
X, &
ldx, 
rcond, FERR, BERR, 
WORK, 
IWORK, info); }
 
 
  230  void LAPACK<int,float>::SYTRD(
const char& UPLO, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* D, 
float* 
E, 
float* 
TAU, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
 
  238  void LAPACK<int,float>::TRTRS(
const char& UPLO, 
const char& 
TRANS, 
const char& 
DIAG, 
const int& n, 
const int& 
nrhs, 
const float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
int* info)
 const 
  239  { STRTRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(
DIAG), &n, &
nrhs, 
A, &
lda, 
B, &
ldb, info); }
 
 
  243  { STRTRI_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
DIAG), &n, 
A, &
lda, info); }
 
 
  247  { SSPEV_F77(CHAR_MACRO(
JOBZ), CHAR_MACRO(UPLO), &n, 
AP, 
W, 
Z, &
ldz, 
WORK, info); }
 
 
  251  { SSYEV_F77(CHAR_MACRO(
JOBZ), CHAR_MACRO(UPLO), &n, 
A, &
lda, 
W, 
WORK, &
lwork, info); }
 
 
  254  void LAPACK<int,float>::SYGV(
const int& 
itype, 
const char& 
JOBZ, 
const char& UPLO, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
W, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  255  { SSYGV_F77(&
itype, CHAR_MACRO(
JOBZ), CHAR_MACRO(UPLO), &n, 
A, &
lda, 
B, &
ldb, 
W, 
WORK, &
lwork, info); }
 
 
  258  void LAPACK<int,float>::HEEV(
const char& 
JOBZ, 
const char& UPLO, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
W, 
float* 
WORK, 
const int& 
lwork, 
float* , 
int* info)
 const 
  259  { SSYEV_F77(CHAR_MACRO(
JOBZ), CHAR_MACRO(UPLO), &n, 
A, &
lda, 
W, 
WORK, &
lwork, info); }
 
 
  262  void LAPACK<int,float>::HEGV(
const int& 
itype, 
const char& 
JOBZ, 
const char& UPLO, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
W, 
float* 
WORK, 
const int& 
lwork, 
float* , 
int* info)
 const 
  263  { SSYGV_F77(&
itype, CHAR_MACRO(
JOBZ), CHAR_MACRO(UPLO), &n, 
A, &
lda, 
B, &
ldb, 
W, 
WORK, &
lwork, info); }
 
 
  274  void LAPACK<int, float>::HSEQR(
const char& 
JOB, 
const char& 
COMPZ, 
const int& n, 
const int& 
ilo, 
const int& 
ihi, 
float* 
H, 
const int& 
ldh, 
float* 
WR, 
float* 
WI, 
float* 
Z, 
const int& 
ldz, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  275  { SHSEQR_F77(CHAR_MACRO(
JOB), CHAR_MACRO(
COMPZ), &n, &
ilo, &
ihi, 
H, &
ldh, 
WR, 
WI, 
Z, &
ldz, 
WORK, &
lwork, info); }
 
 
  278  void LAPACK<int, float>::GEES(
const char& 
JOBVS, 
const char& 
SORT, 
int (*
ptr2func)(
float*, 
float*), 
const int& n, 
float* 
A, 
const int& 
lda, 
int* 
sdim, 
float* 
WR, 
float* 
WI, 
float* 
VS, 
const int& 
ldvs, 
float* 
WORK, 
const int& 
lwork, 
int* 
BWORK, 
int* info)
 const 
  279  { SGEES_F77(CHAR_MACRO(
JOBVS), CHAR_MACRO(
SORT), 
ptr2func, &n, 
A, &
lda, 
sdim, 
WR, 
WI, 
VS, &
ldvs, 
WORK, &
lwork, 
BWORK, info); }
 
  282  void LAPACK<int, float>::GEES(
const char& JOBVS, 
const int& n, 
float* A, 
const int& lda, 
int* sdim, 
float* WR, 
float* WI, 
float* VS, 
const int& ldvs, 
float* WORK, 
const int& lwork, 
float* , 
int* BWORK, 
int* info)
 const 
  284    int (*nullfptr)(
float*,
float*) = NULL;
 
  285    const char sort = 
'N';
 
  286    SGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
 
  290  void LAPACK<int, float>::GEEV(
const char& 
JOBVL, 
const char& 
JOBVR, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
WR, 
float* 
WI, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  291  { SGEEV_F77(CHAR_MACRO(
JOBVL), CHAR_MACRO(
JOBVR), &n, 
A, &
lda, 
WR, 
WI, 
VL, &
ldvl, 
VR, &
ldvr, 
WORK, &
lwork, info); }
 
 
  293  void LAPACK<int, float>::GEEV(
const char& 
JOBVL, 
const char& 
JOBVR, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
WR, 
float* 
WI, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
float* 
WORK, 
const int& 
lwork, 
float* , 
int* info)
 const 
  295    GEEV (
JOBVL, 
JOBVR, n, 
A, 
lda, 
WR, 
WI, 
VL, 
ldvl, 
VR, 
ldvr, 
WORK, 
lwork, info);
 
  299  void LAPACK<int, float>::GESVD(
const char& 
JOBU, 
const char& 
JOBVT, 
const int& 
m, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
S, 
float* 
U, 
const int& 
ldu, 
float* 
V, 
const int& 
ldv, 
float* 
WORK, 
const int& 
lwork, 
float* , 
int* info)
 const 
  300  { SGESVD_F77(CHAR_MACRO(
JOBU), CHAR_MACRO(
JOBVT), &
m, &n, 
A, &
lda, 
S, 
U, &
ldu, 
V, &
ldv, 
WORK, &
lwork, info); }
 
 
  303  void LAPACK<int,float>::GEEVX(
const char& 
BALANC, 
const char& 
JOBVL, 
const char& 
JOBVR, 
const char& 
SENSE, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
WR, 
float* 
WI, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
int* 
ilo, 
int* 
ihi, 
float* 
SCALE, 
float* 
abnrm, 
float* 
RCONDE, 
float* 
RCONDV, 
float* 
WORK, 
const int& 
lwork, 
int* 
IWORK, 
int* info)
 const 
  304  { SGEEVX_F77(CHAR_MACRO(
BALANC), CHAR_MACRO(
JOBVL), CHAR_MACRO(
JOBVR), CHAR_MACRO(
SENSE), &n, 
A, &
lda, 
WR, 
WI, 
VL, &
ldvl, 
VR, &
ldvr, 
ilo, 
ihi, 
SCALE, 
abnrm, 
RCONDE, 
RCONDV, 
WORK, &
lwork, 
IWORK, info); }
 
 
  307  void LAPACK<int,float>::GGEVX(
const char& 
BALANC, 
const char& 
JOBVL, 
const char& 
JOBVR, 
const char& 
SENSE, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
ALPHAR, 
float* 
ALPHAI, 
float* 
BETA, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
int* 
ilo, 
int* 
ihi, 
float* 
lscale, 
float* 
rscale, 
float* 
abnrm, 
float* 
bbnrm, 
float* 
RCONDE, 
float* 
RCONDV, 
float* 
WORK, 
const int& 
lwork, 
int* 
IWORK, 
int* 
BWORK, 
int* info)
 const 
  308  { SGGEVX_F77(CHAR_MACRO(
BALANC), CHAR_MACRO(
JOBVL), CHAR_MACRO(
JOBVR), CHAR_MACRO(
SENSE), &n, 
A, &
lda, 
B, &
ldb, 
ALPHAR, 
ALPHAI, 
BETA, 
VL, &
ldvl, 
VR, &
ldvr, 
ilo, 
ihi, 
lscale, 
rscale, 
abnrm, 
bbnrm, 
RCONDE, 
RCONDV, 
WORK, &
lwork, 
IWORK, 
BWORK, info); }
 
 
  310  void LAPACK<int,float>::GGEVX(
const char& 
BALANC, 
const char& 
JOBVL, 
const char& 
JOBVR, 
const char& 
SENSE, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
ALPHAR, 
float* 
ALPHAI, 
float* 
BETA, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
int* 
ilo, 
int* 
ihi, 
float* 
lscale, 
float* 
rscale, 
float* 
abnrm, 
float* 
bbnrm, 
float* 
RCONDE, 
float* 
RCONDV, 
float* 
WORK, 
const int& 
lwork, 
float* , 
int* 
IWORK, 
int* 
BWORK, 
int* info)
 const 
  312    GGEVX(
BALANC, 
JOBVL, 
JOBVR, 
SENSE, n, 
A, 
lda, 
B, 
ldb, 
ALPHAR, 
ALPHAI, 
BETA, 
VL, 
ldvl, 
VR, 
ldvr, 
ilo, 
ihi, 
lscale, 
rscale, 
abnrm, 
bbnrm, 
RCONDE, 
RCONDV, 
WORK, 
lwork, 
IWORK, 
BWORK, info);
 
  315  void LAPACK<int, float>::GGEV(
const char& 
JOBVL, 
const char& 
JOBVR, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
ALPHAR, 
float* 
ALPHAI, 
float* 
BETA, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  316  { SGGEV_F77(CHAR_MACRO(
JOBVL), CHAR_MACRO(
JOBVR), &n, 
A, &
lda, 
B, &
ldb, 
ALPHAR, 
ALPHAI, 
BETA, 
VL, &
ldvl, 
VR, &
ldvr, 
WORK, &
lwork, info); }
 
 
  319  void LAPACK<int, float>::TRSEN(
const char& 
JOB, 
const char& 
COMPQ, 
const int* 
SELECT, 
const int& n, 
float* 
T, 
const int& 
ldt, 
float* 
Q, 
const int& 
ldq, 
float* 
WR, 
float* 
WI, 
int* 
M, 
float* 
S, 
float* 
SEP, 
float* 
WORK, 
const int& 
lwork, 
int* 
IWORK, 
const int& 
liwork, 
int* info )
 const 
  320  { STRSEN_F77(CHAR_MACRO(
JOB), CHAR_MACRO(
COMPQ), 
SELECT, &n, 
T, &
ldt, 
Q, &
ldq, 
WR, 
WI, 
M, 
S, 
SEP, 
WORK, &
lwork, 
IWORK, &
liwork, info); }
 
 
  323  void LAPACK<int, float>::TGSEN(
const int& 
ijob, 
const int& 
wantq, 
const int& 
wantz, 
const int* 
SELECT, 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
float* 
ALPHAR, 
float* 
ALPHAI, 
float* 
BETA, 
float* 
Q, 
const int& 
ldq, 
float* 
Z, 
const int& 
ldz, 
int* 
M, 
float* 
PL, 
float* 
PR, 
float* 
DIF, 
float* 
WORK, 
const int& 
lwork, 
int* 
IWORK, 
const int& 
liwork, 
int* info )
 const 
  324  { STGSEN_F77(&
ijob, &
wantq, &
wantz, 
SELECT, &n, 
A, &
lda, 
B, &
ldb, 
ALPHAR, 
ALPHAI, 
BETA, 
Q, &
ldq, 
Z, &
ldz, 
M, 
PL, 
PR, 
DIF, 
WORK, &
lwork, 
IWORK, &
liwork, info); }
 
 
  327  void LAPACK<int, float>::GGES(
const char& 
JOBVL, 
const char& 
JOBVR, 
const char& 
SORT, 
int (*
ptr2func)(
float* , 
float* , 
float* ), 
const int& n, 
float* 
A, 
const int& 
lda, 
float* 
B, 
const int& 
ldb, 
int* 
sdim, 
float* 
ALPHAR, 
float* 
ALPHAI, 
float* 
BETA, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
float* 
WORK, 
const int& 
lwork, 
int* 
BWORK, 
int* info )
 const 
  328  { SGGES_F77(CHAR_MACRO(
JOBVL), CHAR_MACRO(
JOBVR), CHAR_MACRO(
SORT), 
ptr2func, &n, 
A, &
lda, 
B, &
ldb, 
sdim, 
ALPHAR, 
ALPHAI, 
BETA, 
VL, &
ldvl, 
VR, &
ldvr, 
WORK, &
lwork, 
BWORK, info); }
 
 
  331  void LAPACK<int, float>::ORMQR(
const char& 
SIDE, 
const char& 
TRANS, 
const int& 
m, 
const int& n, 
const int& 
k, 
const float* 
A, 
const int& 
lda, 
const float* 
TAU, 
float* C, 
const int& 
ldc, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  332  { SORMQR_F77(CHAR_MACRO(
SIDE), CHAR_MACRO(
TRANS), &
m, &n, &
k, 
A, &
lda, 
TAU, C, &
ldc, 
WORK, &
lwork, info); }
 
 
  335  void LAPACK<int, float>::ORM2R(
const char& 
SIDE, 
const char& 
TRANS, 
const int& 
m, 
const int& n, 
const int& 
k, 
const float* 
A, 
const int& 
lda, 
const float* 
TAU, 
float* C, 
const int& 
ldc, 
float* 
WORK, 
int* 
const info)
 const 
  336  { SORM2R_F77(CHAR_MACRO(
SIDE), CHAR_MACRO(
TRANS), &
m, &n, &
k, 
A, &
lda, 
TAU, C, &
ldc, 
WORK, info); }
 
 
  339  void LAPACK<int, float>::UNMQR(
const char& 
SIDE, 
const char& 
TRANS, 
const int& 
m, 
const int& n, 
const int& 
k, 
const float* 
A, 
const int& 
lda, 
const float* 
TAU, 
float* C, 
const int& 
ldc, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  342    ORMQR (
SIDE, 
TRANS, 
m, n, 
k, 
A, 
lda, 
TAU, C, 
ldc, 
WORK, 
lwork, info);
 
 
  345  void LAPACK<int, float>::UNM2R (
const char& 
SIDE, 
const char& 
TRANS, 
const int& 
M, 
const int& 
N, 
const int& 
K, 
const float* 
A, 
const int& 
LDA, 
const float* 
TAU, 
float* C, 
const int& 
LDC, 
float* 
WORK, 
int* 
const INFO)
 const 
  350    ORM2R (
SIDE, 
TRANS, 
M, 
N, 
K, 
A, 
LDA, 
TAU, C, 
LDC, 
WORK, 
INFO);
 
 
  366  void LAPACK<int, float>::ORMHR(
const char& 
SIDE, 
const char& 
TRANS, 
const int& 
m, 
const int& n, 
const int& 
ilo, 
const int& 
ihi, 
const float* 
A, 
const int& 
lda, 
const float* 
TAU, 
float* C, 
const int& 
ldc, 
float* 
WORK, 
const int& 
lwork, 
int* info)
 const 
  367  { SORMHR_F77(CHAR_MACRO(
SIDE), CHAR_MACRO(
TRANS), &
m, &n, &
ilo, &
ihi, 
A, &
lda, 
TAU, C, &
ldc, 
WORK, &
lwork, info); }
 
 
  370  void LAPACK<int, float>::TREVC(
const char& 
SIDE, 
const char& 
HOWMNY, 
int* 
select, 
const int& n, 
const float* 
T, 
const int& 
ldt, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
const int& 
mm, 
int* 
m, 
float* 
WORK, 
int* info)
 const 
  371  { STREVC_F77(CHAR_MACRO(
SIDE), CHAR_MACRO(
HOWMNY), 
select, &n, 
T, &
ldt, 
VL, &
ldvl, 
VR, &
ldvr, &
mm, 
m, 
WORK, info); }
 
  374  void LAPACK<int, float>::TREVC(
const char& SIDE, 
const int& n, 
const float* T, 
const int& ldt, 
float* VL, 
const int& ldvl, 
float* VR, 
const int& ldvr, 
const int& mm, 
int* m, 
float* WORK, 
float* , 
int* info)
 const 
  376    std::vector<int> select(1);
 
  377    const char whch = 
'A';
 
  378    STREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
 
  381  void LAPACK<int, float>::TREXC(
const char& 
COMPQ, 
const int& n, 
float* 
T, 
const int& 
ldt, 
float* 
Q, 
const int& 
ldq, 
int* 
ifst, 
int* 
ilst, 
float* 
WORK, 
int* info)
 const 
 
  385  void LAPACK<int, float>::TGEVC(
const char& 
SIDE, 
const char& 
HOWMNY, 
const int* 
SELECT, 
const int& n, 
const float* 
S, 
const int& 
lds, 
const float* 
P, 
const int& 
ldp, 
float* 
VL, 
const int& 
ldvl, 
float* 
VR, 
const int& 
ldvr, 
const int& 
mm, 
int* 
M, 
float* 
WORK, 
int* info)
 const 
  386  { STGEVC_F77(CHAR_MACRO(
SIDE), CHAR_MACRO(
HOWMNY), 
SELECT, &n, 
S, &
lds, 
P, &
ldp, 
VL, &
ldvl, 
VR, &
ldvr, &
mm, 
M, 
WORK, info); }
 
 
  390  { SLARTG_F77(&
f, &
g, 
c, 
s, 
r); }
 
 
  394  { SLARFG_F77(&n, 
alpha, x, &
incx, tau); }
 
 
  397  { SGEBAL_F77(CHAR_MACRO(
JOBZ),&n, 
A, &
lda, 
ilo, 
ihi, scale, info); }
 
 
  400  void LAPACK<int, float>::GEBAK(
const char& 
JOBZ, 
const char& 
SIDE, 
const int& n, 
const int& 
ilo, 
const int& 
ihi, 
const float* scale, 
const int& 
m, 
float* 
V, 
const int& 
ldv, 
int* info)
 const 
  401  { SGEBAK_F77(CHAR_MACRO(
JOBZ), CHAR_MACRO(
SIDE), &n, &
ilo, &
ihi, scale, &
m, 
V, &
ldv, info); }
 
 
  403#ifdef HAVE_TEUCHOS_LAPACKLARND 
  413  { 
return(SLAMCH_F77(CHAR_MACRO(
CMACH))); }
 
 
  431#if defined(HAVE_TEUCHOS_BLASFLOAT) 
  435    const float xabs = ST::magnitude(x);
 
  436    const float yabs = ST::magnitude(
y);
 
 
  452  { DPTTRF_F77(&n,d,
e,info); }
 
  455  void LAPACK<int, double>::PTTRS(
const int& n, 
const int& nrhs, 
const double* d, 
const double* e, 
double* B, 
const int& ldb, 
int* info)
 const 
  456  { DPTTRS_F77(&n,&nrhs,d,e,B,&ldb,info); }
 
  460  { DPOTRF_F77(CHAR_MACRO(UPLO), &n, A, &lda, info); }
 
  463  void LAPACK<int, double>::POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* info)
 const 
  464  { DPOTRS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info); }
 
  468  { DPOTRI_F77(CHAR_MACRO(UPLO), &n, A, &lda, info); }
 
  471  void LAPACK<int, double>::POCON(
const char& UPLO, 
const int& n, 
const double* A, 
const int& lda, 
const double& anorm, 
double* rcond, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  472  { DPOCON_F77(CHAR_MACRO(UPLO), &n, A, &lda, &anorm, rcond, WORK, IWORK, info); }
 
  475  void LAPACK<int, double>::POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* info)
 const 
  476  { DPOSV_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info); }
 
  479  void LAPACK<int, double>::POEQU(
const int& n, 
const double* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info)
 const 
  480  { DPOEQU_F77(&n, A, &lda, S, scond, amax, info); }
 
  483  void LAPACK<int, double>::PORFS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
const double* AF, 
const int& ldaf, 
const double* B, 
const int& ldb, 
double* X, 
const int& ldx, 
double* FERR, 
double* BERR, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  484  { DPORFS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
 
  486  void LAPACK<int, double>::POSVX(
const char& FACT, 
const char& UPLO, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* AF, 
const int& ldaf, 
char* EQUED, 
double* S, 
double* B, 
const int& ldb, 
double* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  487  { DPOSVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, CHARPTR_MACRO(EQUED), S, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
 
  490  void LAPACK<int,double>::GELS(
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  491  { DGELS_F77(CHAR_MACRO(
TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info); }
 
  494  void LAPACK<int,double>::GELSS(
const int& m, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* S, 
const double& rcond, 
int* rank, 
double* WORK, 
const int& lwork, 
double* rwork, 
int* info)
 const 
  497    DGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info);
 
  501  void LAPACK<int,double>::GELSS(
const int& m, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* S, 
const double& rcond, 
int* rank, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  502  { DGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
 
  505  void LAPACK<int,double>::GGLSE(
const int& m, 
const int& n, 
const int& p, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* C, 
double* D, 
double* X, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  506  { DGGLSE_F77(&m, &n, &p, A, &lda, B, &ldb, C, D, X, WORK, &lwork, info); }
 
  509  void LAPACK<int,double>::GEQRF( 
const int& m, 
const int& n, 
double* A, 
const int& lda, 
double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  510  { DGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info); }
 
  512  void LAPACK<int,double>::GEQR2 (
const int& m, 
const int& n, 
double* A, 
const int& lda, 
double* TAU, 
double* WORK, 
int* 
const info)
 const 
  514    DGEQR2_F77(&m, &n, A, &lda, TAU, WORK, info);
 
  518  { DGETRF_F77(&m, &n, A, &lda, IPIV, info); }
 
  521  void LAPACK<int,double>::GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
const int* IPIV, 
double* B, 
const int& ldb, 
int* info)
 const 
  522  { DGETRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, IPIV, B, &ldb, info); }
 
  525  void LAPACK<int,double>::LASCL(
const char& TYPE, 
const int& kl, 
const int& ku, 
const double& cfrom, 
const double& cto, 
const int& m, 
const int& n, 
double* A, 
const int& lda, 
int* info)
 const 
  526  { DLASCL_F77(CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, A, &lda, info); }
 
  528  void LAPACK<int,double>::GEQP3(
const int& m, 
const int& n, 
double* A, 
const int& lda, 
int* jpvt, 
double* TAU, 
double* WORK, 
const int& lwork, 
double* RWORK, 
int* info )
 const 
  531    DGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, info);
 
  534  void LAPACK<int, double>::LASWP (
const int& N, 
double* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX)
 const 
  535  { DLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX); }
 
  537  void LAPACK<int,double>::GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
double* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
  538  { DGBTRF_F77(&m, &n, &kl, &ku, A, &lda, IPIV, info); }
 
  541  void LAPACK<int,double>::GBTRS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const double* A, 
const int& lda, 
const int* IPIV, 
double* B, 
const int& ldb, 
int* info)
 const 
  542  { DGBTRS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info); }
 
  546  { DGTTRF_F77(&n, dl, d, du, du2, IPIV, info); }
 
  549  void LAPACK<int,double>::GTTRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const double* dl, 
const double* d, 
const double* du, 
const double* du2, 
const int* IPIV, 
double* B, 
const int& ldb, 
int* info)
 const 
  550  { DGTTRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info); }
 
  553  void LAPACK<int,double>::GETRI(
const int& n, 
double* A, 
const int& lda, 
const int* IPIV, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  554  { DGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info); }
 
  556  void LAPACK<int, double>::LATRS (
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const char& NORMIN, 
const int& N, 
const double* A, 
const int& LDA, 
double* X, 
double* SCALE, 
double* CNORM, 
int* INFO)
 const 
  558    DLATRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
 
  561  void LAPACK<int,double>::GECON(
const char& NORM, 
const int& n, 
const double* A, 
const int& lda, 
const double& anorm, 
double* rcond, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  562  { DGECON_F77(CHAR_MACRO(NORM), &n, A, &lda, &anorm, rcond, WORK, IWORK, info); }
 
  565  void LAPACK<int,double>::GBCON(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const double* A, 
const int& lda, 
const int* IPIV, 
const double& anorm, 
double* rcond, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  566  { DGBCON_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, IWORK, info); }
 
  569  double LAPACK<int,double>::LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const double* A, 
const int& lda, 
double* WORK)
 const 
  570  { 
return( DLANGB_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, WORK) ); }
 
  573  void LAPACK<int,double>::GESV(
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
int* IPIV, 
double* B, 
const int& ldb, 
int* info)
 const 
  574  { DGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info); }
 
  577  void LAPACK<int,double>::GEEQU(
const int& m, 
const int& n, 
const double* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
  578  { DGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info); }
 
  581  void LAPACK<int,double>::GERFS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
const double* AF, 
const int& ldaf, 
const int* IPIV, 
const double* B, 
const int& ldb, 
double* X, 
const int& ldx, 
double* FERR, 
double* BERR, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  582  { DGERFS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
 
  585  void LAPACK<int,double>::GBEQU(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
const double* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
  586  { DGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info); }
 
  589  void LAPACK<int,double>::GBRFS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const double* A, 
const int& lda, 
const double* AF, 
const int& ldaf, 
const int* IPIV, 
const double* B, 
const int& ldb, 
double* X, 
const int& ldx, 
double* FERR, 
double* BERR, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  590  { DGBRFS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
 
  592  void LAPACK<int,double>::GESVX(
const char& FACT, 
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* AF, 
const int& ldaf, 
int* IPIV, 
char* EQUED, 
double* R, 
double* C, 
double* B, 
const int& ldb, 
double* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, 
double* WORK, 
int* IWORK, 
int* info)
 const 
  593  { DGESVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, CHARPTR_MACRO(EQUED), R, C, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
 
  596  void LAPACK<int,double>::SYTRD(
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* D, 
double* E, 
double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  597  { DSYTRD_F77(CHAR_MACRO(UPLO), &n, A, &lda, D, E, TAU, WORK, &lwork, info); }
 
  600  void LAPACK<int, double>::GEHRD(
const int& n, 
const int& ilo, 
const int& ihi, 
double* A, 
const int& lda, 
double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  601  { DGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info); }
 
  604  void LAPACK<int,double>::TRTRS(
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* info)
 const 
  605  { DTRTRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), &n, &nrhs, A, &lda, B, &ldb, info); }
 
  608  void LAPACK<int,double>::TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, 
double* A, 
const int& lda, 
int* info)
 const 
  609  { DTRTRI_F77(CHAR_MACRO(UPLO), CHAR_MACRO(DIAG), &n, A, &lda, info); }
 
  612  void LAPACK<int,double>::SPEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* AP, 
double* W, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
  613  { DSPEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, AP, W, Z, &ldz, WORK, info); }
 
  616  void LAPACK<int,double>::SYEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* W, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  618    DSYEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, W, WORK, &lwork, info);
 
  622  void LAPACK<int,double>::SYGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* W, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  624    DSYGV_F77(&itype, CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info);
 
  628  void LAPACK<int,double>::HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* W, 
double* WORK, 
const int& lwork, 
double* , 
int* info)
 const 
  630    DSYEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, W, WORK, &lwork, info);
 
  634  void LAPACK<int,double>::HEGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* W, 
double* WORK, 
const int& lwork, 
double* , 
int* info)
 const 
  636    DSYGV_F77(&itype, CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info);
 
  640  void LAPACK<int,double>::STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
  641  { DSTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info); }
 
  644  void LAPACK<int,double>::PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
  645  { DPTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info); }
 
  648  void LAPACK<int, double>::HSEQR(
const char& JOB, 
const char& COMPZ, 
const int& n, 
const int& ilo, 
const int& ihi, 
double* H, 
const int& ldh, 
double* WR, 
double* WI, 
double* Z, 
const int& ldz, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  650    DHSEQR_F77(CHAR_MACRO(JOB), CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, WR, WI, Z, &ldz, WORK, &lwork, info);
 
  654  void LAPACK<int, double>::GEES(
const char& JOBVS, 
const char& SORT, 
int (*ptr2func)(
double*, 
double*), 
const int& n, 
double* A, 
const int& lda, 
int* sdim, 
double* WR, 
double* WI, 
double* VS, 
const int& ldvs, 
double* WORK, 
const int& lwork, 
int* BWORK, 
int* info)
 const 
  656    DGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
 
  660  void LAPACK<int, double>::GEES(
const char& JOBVS, 
const int& n, 
double* A, 
const int& lda, 
int* sdim, 
double* WR, 
double* WI, 
double* VS, 
const int& ldvs, 
double* WORK, 
const int& lwork, 
double* , 
int* BWORK, 
int* info)
 const 
  663    gees_nullfptr_t nullfptr = 0;
 
  664    const char sort = 
'N';
 
  665    DGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
 
  669  void LAPACK<int, double>::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, 
double* A, 
const int& lda, 
double* WR, 
double* WI, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  671    DGEEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
 
  674  void LAPACK<int, double>::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, 
double* A, 
const int& lda, 
double* WR, 
double* WI, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
double* WORK, 
const int& lwork, 
double* , 
int* info)
 const 
  676    GEEV (JOBVL, JOBVR, n, A, lda, WR, WI, VL, ldvl, VR, ldvr, WORK, lwork, info);
 
  680  void LAPACK<int, double>::GESVD(
const char& JOBU, 
const char& JOBVT, 
const int& m, 
const int& n, 
double* A, 
const int& lda, 
double* S, 
double* U, 
const int& ldu, 
double* V, 
const int& ldv, 
double* WORK, 
const int& lwork, 
double* , 
int* info)
 const {
 
  681    DGESVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, info);
 
  685  void LAPACK<int,double>::GEEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, 
double* A, 
const int& lda, 
double* WR, 
double* WI, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* SCALE, 
double* abnrm, 
double* RCONDE, 
double* RCONDV, 
double* WORK, 
const int& lwork, 
int* IWORK, 
int* info)
 const 
  687    DGEEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, info);
 
  691  void LAPACK<int, double>::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, 
double* BETA, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, 
double* WORK, 
const int& lwork, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
  693    DGGEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, BWORK, info);
 
  696  void LAPACK<int, double>::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, 
double* BETA, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, 
double* WORK, 
const int& lwork, 
double* , 
int* IWORK, 
int* BWORK, 
int* info)
 const 
  698    GGEVX(BALANC, JOBVL, JOBVR, SENSE, n, A, lda, B, ldb, ALPHAR, ALPHAI, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, IWORK, BWORK, info);
 
  701  void LAPACK<int, double>::GGEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, 
double* BETA, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  703    DGGEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
 
  706  void LAPACK<int, double>::TRSEN(
const char& JOB, 
const char& COMPQ, 
const int* SELECT, 
const int& n, 
double* T, 
const int& ldt, 
double* Q, 
const int& ldq, 
double* WR, 
double* WI, 
int* M, 
double* S, 
double* SEP, 
double* WORK, 
const int& lwork, 
int* IWORK, 
const int& liwork, 
int* info )
 const 
  707  { DTRSEN_F77(CHAR_MACRO(JOB), CHAR_MACRO(COMPQ), SELECT, &n, T, &ldt, Q, &ldq, WR, WI, M, S, SEP, WORK, &lwork, IWORK, &liwork, info); }
 
  710  void LAPACK<int, double>::TGSEN(
const int& ijob, 
const int& wantq, 
const int& wantz, 
const int* SELECT, 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, 
double* BETA, 
double* Q, 
const int& ldq, 
double* Z, 
const int& ldz, 
int* M, 
double* PL, 
double* PR, 
double* DIF, 
double* WORK, 
const int& lwork, 
int* IWORK, 
const int& liwork, 
int* info )
 const 
  711  { DTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, A, &lda, B, &ldb, ALPHAR, ALPHAI, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info); }
 
  714  void LAPACK<int, double>::GGES(
const char& JOBVL, 
const char& JOBVR, 
const char& SORT, 
int (*ptr2func)(
double* , 
double* , 
double* ), 
const int& n, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* sdim, 
double* ALPHAR, 
double* ALPHAI, 
double* BETA, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
double* WORK, 
const int& lwork, 
int* BWORK, 
int* info )
 const 
  715  { DGGES_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, B, &ldb, sdim, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, BWORK, info); }
 
  718  void LAPACK<int, double>::ORMQR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const double* A, 
const int& lda, 
const double* TAU, 
double* C, 
const int& ldc, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  720    DORMQR_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
 
  723  void LAPACK<int, double>::ORM2R(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const double* A, 
const int& lda, 
const double* TAU, 
double* C, 
const int& ldc, 
double* WORK, 
int* 
const info)
 const 
  725    DORM2R_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, info);
 
  728  void LAPACK<int, double>::UNMQR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const double* A, 
const int& lda, 
const double* TAU, 
double* C, 
const int& ldc, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  731    ORMQR (SIDE, 
TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, lwork, info);
 
  734  void LAPACK<int, double>::UNM2R (
const char& SIDE, 
const char& 
TRANS, 
const int& M, 
const int& N, 
const int& K, 
const double* A, 
const int& LDA, 
const double* TAU, 
double* C, 
const int& LDC, 
double* WORK, 
int* 
const INFO)
 const 
  739    ORM2R (SIDE, 
TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO);
 
  742  void LAPACK<int, double>::ORGQR(
const int& m, 
const int& n, 
const int& k, 
double* A, 
const int& lda, 
const double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  744    DORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
 
  748  void LAPACK<int, double>::UNGQR(
const int& m, 
const int& n, 
const int& k, 
double* A, 
const int& lda, 
const double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  750    DORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
 
  754  void LAPACK<int, double>::ORGHR(
const int& n, 
const int& ilo, 
const int& ihi, 
double* A, 
const int& lda, 
const double* TAU, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  756    DORGHR_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
 
  760  void LAPACK<int, double>::ORMHR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& ilo, 
const int& ihi, 
const double* A, 
const int& lda, 
const double* TAU, 
double* C, 
const int& ldc, 
double* WORK, 
const int& lwork, 
int* info)
 const 
  762    DORMHR_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &ilo, &ihi, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
 
  766  void LAPACK<int, double>::TREVC(
const char& SIDE, 
const char& HOWMNY, 
int* select, 
const int& n, 
const double* T, 
const int& ldt, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
const int& mm, 
int* m, 
double* WORK, 
int* info)
 const 
  768    DTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
 
  772  void LAPACK<int, double>::TREVC(
const char& SIDE, 
const int& n, 
const double* T, 
const int& ldt, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
const int& mm, 
int* m, 
double* WORK, 
double* , 
int* info)
 const 
  774    std::vector<int> select(1);
 
  775    const char whch = 
'A';
 
  776    DTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
 
  779  void LAPACK<int, double>::TREXC(
const char& COMPQ, 
const int& n, 
double* T, 
const int& ldt, 
double* Q, 
const int& ldq, 
int* ifst, 
int* ilst, 
double* WORK, 
int* info)
 const 
  781    DTREXC_F77(CHAR_MACRO(COMPQ), &n, T, &ldt, Q, &ldq, ifst, ilst, WORK, info);
 
  785  void LAPACK<int, double>::TGEVC(
const char& SIDE, 
const char& HOWMNY, 
const int* SELECT, 
const int& n, 
const double* S, 
const int& lds, 
const double* P, 
const int& ldp, 
double* VL, 
const int& ldvl, 
double* VR, 
const int& ldvr, 
const int& mm, 
int* M, 
double* WORK, 
int* info)
 const 
  786  { DTGEVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(HOWMNY), SELECT, &n, S, &lds, P, &ldp, VL, &ldvl, VR, &ldvr, &mm, M, WORK, info); }
 
  791    DLARTG_F77(&f, &g, c, s, r);
 
  797    DLARFG_F77(&n, alpha, x, &incx, tau);
 
  800  void LAPACK<int, double>::GEBAL(
const char& JOBZ, 
const int& n, 
double* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info)
 const 
  802    DGEBAL_F77(CHAR_MACRO(JOBZ),&n, A, &lda, ilo, ihi, scale, info);
 
  806  void LAPACK<int, double>::GEBAK(
const char& JOBZ, 
const char& SIDE, 
const int& n, 
const int& ilo, 
const int& ihi, 
const double* scale, 
const int& m, 
double* V, 
const int& ldv, 
int* info)
 const 
  808    DGEBAK_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(SIDE), &n, &ilo, &ihi, scale, &m, V, &ldv, info);
 
  812#ifdef HAVE_TEUCHOS_LAPACKLARND 
  815    return(DLARND_F77(&idist, seed));
 
  821    DLARNV_F77(&idist, seed, &n, v);
 
  827    return(DLAMCH_F77(CHAR_MACRO(CMACH)));
 
  831  int LAPACK<int, double>::ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1, 
const int& N2, 
const int& N3, 
const int& N4 )
 const 
  833    unsigned int opts_length = OPTS.length();
 
  835    std::string temp_NAME = 
"d" + NAME;
 
  836    if (temp_NAME.substr(1,2) == 
"he") {
 
  837      temp_NAME.replace(1,2,
"sy");
 
  839    unsigned int name_length = temp_NAME.length();
 
  840    return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
 
  846    return DLAPY2_F77(&x, &y);
 
  851#ifdef HAVE_TEUCHOS_COMPLEX 
  856  void LAPACK<int, std::complex<float> >::PTTRF(
const int& n, 
float* d, std::complex<float>* e, 
int* info)
 const 
  858    CPTTRF_F77(&n,d,e,info);
 
  862  void LAPACK<int, std::complex<float> >::PTTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const float* d, 
const std::complex<float>* e, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
  864    CPTTRS_F77(CHAR_MACRO(UPLO),&n,&nrhs,d,e,B,&ldb,info);
 
  868  void LAPACK<int, std::complex<float> >::POTRF(
const char& UPLO, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info)
 const 
  870    CPOTRF_F77(CHAR_MACRO(UPLO), &n, A, &lda, info);
 
  874  void LAPACK<int, std::complex<float> >::POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
  876    CPOTRS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
 
  880  void LAPACK<int, std::complex<float> >::POTRI(
const char& UPLO, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info)
 const 
  882    CPOTRI_F77(CHAR_MACRO(UPLO), &n, A, &lda, info);
 
  886  void LAPACK<int, std::complex<float> >::POCON(
const char& UPLO, 
const int& n, 
const std::complex<float>* A, 
const int& lda, 
const float& anorm, 
float* rcond, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
  888    CPOCON_F77(CHAR_MACRO(UPLO), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
 
  892  void LAPACK<int, std::complex<float> >::POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
  894    CPOSV_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
 
  898  void LAPACK<int, std::complex<float> >::POEQU(
const int& n, 
const std::complex<float>* A, 
const int& lda, 
float* S, 
float* scond, 
float* amax, 
int* info)
 const 
  900    CPOEQU_F77(&n, A, &lda, S, scond, amax, info);
 
  904  void LAPACK<int, std::complex<float> >::PORFS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, 
const std::complex<float>* AF, 
const int& ldaf, 
const std::complex<float>* B, 
const int& ldb, std::complex<float>* X, 
const int& ldx, 
float* FERR, 
float* BERR, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
  906    CPORFS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
  909  void LAPACK<int, std::complex<float> >::POSVX(
const char& FACT, 
const char& UPLO, 
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, std::complex<float>* AF, 
const int& ldaf, 
char* EQUED, 
float* S, std::complex<float>* B, 
const int& ldb, std::complex<float>* X, 
const int& ldx, 
float* rcond, 
float* FERR, 
float* BERR, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
  911    CPOSVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, CHARPTR_MACRO(EQUED), S, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
 
  915  void LAPACK<int,std::complex<float> >::GELS(
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
  917    CGELS_F77(CHAR_MACRO(
TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info);
 
  920  void LAPACK<int, std::complex<float> >::GELSS(
const int& m, 
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
float* S, 
const float& rcond, 
int* rank, std::complex<float>* WORK, 
const int& lwork, 
float* rwork, 
int* info)
 const 
  922    CGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
 
  925  void LAPACK<int,std::complex<float> >::GEQRF( 
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* TAU, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
  927    CGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info);
 
  930  void LAPACK<int,std::complex<float> >::GEQR2 (
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* TAU, std::complex<float>* WORK, 
int* 
const info)
 const 
  932    CGEQR2_F77(&m, &n, A, &lda, TAU, WORK, info);
 
  935  void LAPACK<int,std::complex<float> >::UNGQR(
const int& m, 
const int& n, 
const int& k, std::complex<float>* A, 
const int& lda, 
const std::complex<float>* TAU, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
  937    CUNGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
 
  940  void LAPACK<int,std::complex<float> >::UNMQR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const std::complex<float>* A, 
const int& lda, 
const std::complex<float>* TAU, std::complex<float>* C, 
const int& ldc, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
  942    CUNMQR_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
 
  945  void LAPACK<int,std::complex<float> >::UNM2R (
const char& SIDE, 
const char& 
TRANS, 
const int& M, 
const int& N, 
const int& K, 
const std::complex<float>* A, 
const int& LDA, 
const std::complex<float>* TAU, std::complex<float>* C, 
const int& LDC, std::complex<float>* WORK, 
int* 
const INFO)
 const 
  947    CUNM2R_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &M, &N, &K, A, &LDA, TAU, C, &LDC, WORK, INFO);
 
  950  void LAPACK<int,std::complex<float> >::GETRF(
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
  952    CGETRF_F77(&m, &n, A, &lda, IPIV, info);
 
  955  void LAPACK<int,std::complex<float> >::GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, 
const int* IPIV, std::complex<float>* B , 
const int& ldb, 
int* info)
 const 
  957    CGETRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
  960  void LAPACK<int,std::complex<float> >::LASCL(
const char& TYPE, 
const int& kl, 
const int& ku, 
const float& cfrom, 
const float& cto, 
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info)
 const 
  961  { CLASCL_F77(CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, A, &lda, info); }
 
  963  void LAPACK<int,std::complex<float> >::GEQP3(
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* jpvt, std::complex<float>* TAU, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* info )
 const 
  965    CGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
 
  968  void LAPACK<int, std::complex<float> >::
 
  970         std::complex<float>* A,
 
  975         const int& INCX)
 const 
  977    CLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX);
 
  980  void LAPACK<int,std::complex<float> >::GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, std::complex<float>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
  982    CGBTRF_F77(&m, &kl, &ku, &n, A, &lda, IPIV, info);
 
  986  void LAPACK<int,std::complex<float> >::GBTRS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, 
const int* IPIV, std::complex<float>* B , 
const int& ldb, 
int* info)
 const 
  988    CGBTRS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
  992  void LAPACK<int,std::complex<float> >::GTTRF(
const int& n, std::complex<float>* dl, std::complex<float>* d, std::complex<float>* du, std::complex<float>* du2, 
int* IPIV, 
int* info)
 const 
  994    CGTTRF_F77(&n, dl, d, du, du2, IPIV, info);
 
  998  void LAPACK<int,std::complex<float> >::GTTRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<float>* dl, 
const std::complex<float>* d, 
const std::complex<float>* du, 
const std::complex<float>* du2, 
const int* IPIV, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
 1000    CGTTRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info);
 
 1004  void LAPACK<int,std::complex<float> >::GETRI(
const int& n, std::complex<float>* A, 
const int& lda, 
const int* IPIV, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
 1006    CGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info);
 
 1010  void LAPACK<int, std::complex<float> >::LATRS (
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const char& NORMIN, 
const int& N, 
const std::complex<float>* A, 
const int& LDA, std::complex<float>* X, 
float* SCALE, 
float* CNORM, 
int* INFO)
 const 
 1012    CLATRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
 
 1016  void LAPACK<int,std::complex<float> >::GECON(
const char& NORM, 
const int& n, 
const std::complex<float>* A, 
const int& lda, 
const float& anorm, 
float* rcond, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1018    CGECON_F77(CHAR_MACRO(NORM), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
 
 1022  void LAPACK<int,std::complex<float> >::GBCON(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<float>* A, 
const int& lda, 
const int* IPIV, 
const float& anorm, 
float* rcond, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1024    CGBCON_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
 
 1028  float LAPACK<int,std::complex<float> >::LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<float>* A, 
const int& lda, 
float* WORK)
 const 
 1030    return( CLANGB_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, WORK) );
 
 1034  void LAPACK<int,std::complex<float> >::GESV(
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, 
int* IPIV, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
 1036    CGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
 1040  void LAPACK<int,std::complex<float> >::GEEQU(
const int& m, 
const int& n, 
const std::complex<float>* A, 
const int& lda, 
float* R, 
float* C, 
float* rowcond, 
float* colcond, 
float* amax, 
int* info)
 const 
 1042    CGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info);
 
 1046  void LAPACK<int,std::complex<float> >::GERFS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, 
const std::complex<float>* AF, 
const int& ldaf, 
const int* IPIV, 
const std::complex<float>* B, 
const int& ldb, std::complex<float>* X, 
const int& ldx, 
float* FERR, 
float* BERR, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1048    CGERFS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
 1052  void LAPACK<int,std::complex<float> >::GBEQU(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<float>* A, 
const int& lda, 
float* R, 
float* C, 
float* rowcond, 
float* colcond, 
float* amax, 
int* info)
 const 
 1054    CGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info);
 
 1058  void LAPACK<int,std::complex<float> >::GBRFS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, 
const std::complex<float>* AF, 
const int& ldaf, 
const int* IPIV, 
const std::complex<float>* B, 
const int& ldb, std::complex<float>* X, 
const int& ldx, 
float* FERR, 
float* BERR, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1060    CGBRFS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
 1063  void LAPACK<int,std::complex<float> >::GESVX(
const char& FACT, 
const char& 
TRANS, 
const int& n, 
const int& nrhs, std::complex<float>* A, 
const int& lda, std::complex<float>* AF, 
const int& ldaf, 
int* IPIV, 
char* EQUED, 
float* R, 
float* C, std::complex<float>* B, 
const int& ldb, std::complex<float>* X, 
const int& ldx, 
float* rcond, 
float* FERR, 
float* BERR, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1065    CGESVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, CHARPTR_MACRO(EQUED), R, C, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
 
 1069  void LAPACK<int,std::complex<float> >::GEHRD(
const int& n, 
const int& ilo, 
const int& ihi, std::complex<float>* A, 
const int& lda, std::complex<float>* TAU, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
 1071    CGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
 
 1075  void LAPACK<int,std::complex<float> >::TRTRS(
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const int& n, 
const int& nrhs, 
const std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
int* info)
 const 
 1077    CTRTRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), &n, &nrhs, A, &lda, B, &ldb, info);
 
 1081  void LAPACK<int,std::complex<float> >::TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info)
 const 
 1083    CTRTRI_F77(CHAR_MACRO(UPLO), CHAR_MACRO(DIAG), &n, A, &lda, info);
 
 1087  void LAPACK<int,std::complex<float> >::STEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, std::complex<float>* Z, 
const int& ldz, 
float* WORK, 
int* info)
 const 
 1089    CSTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
 
 1093  void LAPACK<int,std::complex<float> >::PTEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, std::complex<float>* Z, 
const int& ldz, 
float* WORK, 
int* info)
 const 
 1095    CPTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
 
 1099  void LAPACK<int,std::complex<float> >::HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, std::complex<float> * A, 
const int& lda, 
float*  W, std::complex<float> * WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1101    CHEEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, W, WORK, &lwork, RWORK, info);
 
 1105  void LAPACK<int,std::complex<float> >::HEGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, std::complex<float> * A, 
const int& lda, std::complex<float> * B, 
const int& ldb, 
float*  W, std::complex<float> * WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1107    CHEGV_F77(&itype, CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, RWORK, info);
 
 1111  void LAPACK<int, std::complex<float> >::HSEQR(
const char& JOB, 
const char& COMPZ, 
const int& n, 
const int& ilo, 
const int& ihi, std::complex<float>* H, 
const int& ldh, std::complex<float>* W, std::complex<float>* Z, 
const int& ldz, std::complex<float>* WORK, 
const int& lwork, 
int* info)
 const 
 1113    CHSEQR_F77(CHAR_MACRO(JOB), CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
 
 1117  void LAPACK<int, std::complex<float> >::GEES(
const char& JOBVS, 
const char& SORT, 
int (*ptr2func)(std::complex<float>*), 
const int& n, std::complex<float>* A, 
const int& lda, 
int* sdim, std::complex<float>* W, std::complex<float>* VS, 
const int& ldvs, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* BWORK, 
int* info)
 const 
 1119    CGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
 
 1123  void LAPACK<int, std::complex<float> >::GEES(
const char& JOBVS, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* sdim, 
float* WR, 
float* WI, std::complex<float>* VS, 
const int& ldvs, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* BWORK, 
int* info)
 const 
 1125    int (*nullfptr)(std::complex<float>*) = NULL;
 
 1126    std::vector< std::complex<float> > W(n);
 
 1127    const char sort = 
'N';
 
 1128    CGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
 
 1129    for (
int i=0; i<n; i++) {
 
 1130      WR[i] = W[i].real();
 
 1131      WI[i] = W[i].imag();
 
 1136  void LAPACK<int, std::complex<float> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* W, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1138    CGEEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
 
 1141  void LAPACK<int, std::complex<float> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<float>* A, 
const int& lda, 
float* WR, 
float* WI, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1143    std::vector<std::complex<float> > w (n);
 
 1144    std::complex<float>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1145    GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
 
 1149      for (
int k = 0; k < n; ++k) {
 
 1150        WR[k] = w[k].real ();
 
 1151        WI[k] = w[k].imag ();
 
 1156  void LAPACK<int, std::complex<float> >::GESVD(
const char& JOBU, 
const char& JOBVT, 
const int& m, 
const int& n, std::complex<float> * A, 
const int& lda, 
float* S, std::complex<float> * U, 
const int& ldu, std::complex<float> * V, 
const int& ldv, std::complex<float> * WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const {
 
 1157    CGESVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
 
 1161  void LAPACK<int, std::complex<float> >::GEEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* W, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
float* SCALE, 
float* abnrm, 
float* RCONDE, 
float* RCONDV, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1163    CGEEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, info);
 
 1167  void LAPACK<int, std::complex<float> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
float* lscale, 
float* rscale, 
float* abnrm, 
float* bbnrm, 
float* RCONDE, 
float* RCONDV, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1169    CGGEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, IWORK, BWORK, info);
 
 1172  void LAPACK<int, std::complex<float> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
float* ALPHAR, 
float* ALPHAI, std::complex<float>* BETA, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
float* lscale, 
float* rscale, 
float* abnrm, 
float* bbnrm, 
float* RCONDE, 
float* RCONDV, std::complex<float>* WORK, 
const int& lwork, 
float* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1174    std::vector<std::complex<float> > w (n);
 
 1175    std::complex<float>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1176    GGEVX(BALANC, JOBVL, JOBVR, SENSE, n, A, lda, B, ldb, w_rawPtr, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, RWORK, IWORK, BWORK, info);
 
 1180      for (
int k = 0; k < n; ++k) {
 
 1181        ALPHAR[k] = w[k].real ();
 
 1182        ALPHAI[k] = w[k].imag ();
 
 1187  void LAPACK<int, std::complex<float> >::GGEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<float> *A, 
const int& lda, std::complex<float> *B, 
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, std::complex<float> *WORK, 
const int& lwork, 
float* RWORK, 
int* info)
 const 
 1189    CGGEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info); 
 
 1192  void LAPACK<int, std::complex<float> >::GGES(
const char& JOBVL, 
const char& JOBVR, 
const char& SORT, 
int (*ptr2func)(std::complex<float>*, std::complex<float>*), 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, 
int* sdim, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, std::complex<float>* WORK, 
const int& lwork, 
float* rwork, 
int* bwork, 
int* info )
 const 
 1194    CGGES_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, B, &ldb, sdim, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, rwork, bwork, info); 
 
 1196  void LAPACK<int, std::complex<float> >::TGSEN(
const int& ijob, 
const int& wantq, 
const int& wantz, 
const int* SELECT, 
const int& n, std::complex<float>* A, 
const int& lda, std::complex<float>* B, 
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* Q, 
const int& ldq, std::complex<float>* Z, 
const int& ldz, 
int* M, 
float* PL, 
float* PR, 
float* DIF, std::complex<float>* WORK, 
const int& lwork, 
int* IWORK, 
const int& liwork, 
int* info )
 const 
 1198    CTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, A, &lda, B, &ldb, ALPHA, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info); 
 
 1201  void LAPACK<int, std::complex<float> >::TREVC(
const char& SIDE, 
const char& HOWMNY, 
int* select, 
const int& n, 
const std::complex<float>* T, 
const int& ldt, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, 
const int& mm, 
int* m, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1203    CTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
 
 1207  void LAPACK<int, std::complex<float> >::TREVC(
const char& SIDE, 
const int& n, 
const std::complex<float>* T, 
const int& ldt, std::complex<float>* VL, 
const int& ldvl, std::complex<float>* VR, 
const int& ldvr, 
const int& mm, 
int* m, std::complex<float>* WORK, 
float* RWORK, 
int* info)
 const 
 1209    std::vector<int> select(1);
 
 1210    const char& whch = 
'A';
 
 1211    CTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
 
 1214  void LAPACK<int, std::complex<float> >::TREXC(
const char& COMPQ, 
const int& n, std::complex<float>* T, 
const int& ldt, std::complex<float>* Q, 
const int& ldq, 
int* ifst, 
int* ilst, std::complex<float>* WORK, 
int* info)
 const 
 1216    CTREXC_F77(CHAR_MACRO(COMPQ), &n, T, &ldt, Q, &ldq, ifst, ilst, info);
 
 1220  void LAPACK<int, std::complex<float> >::LARTG( 
const std::complex<float> f, 
const std::complex<float> g, 
float* c, std::complex<float>* s, std::complex<float>* r )
 const 
 1222    CLARTG_F77(&f, &g, c, s, r);
 
 1226  void LAPACK<int, std::complex<float> >::LARFG( 
const int& n, std::complex<float>* alpha, std::complex<float>* x, 
const int& incx, std::complex<float>* tau )
 const 
 1228    CLARFG_F77(&n, alpha, x, &incx, tau);
 
 1231  void LAPACK<int, std::complex<float> >::GEBAL(
const char& JOBZ, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
float* scale, 
int* info)
 const 
 1233    CGEBAL_F77(CHAR_MACRO(JOBZ),&n, A, &lda, ilo, ihi, scale, info);
 
 1237  void LAPACK<int, std::complex<float> >::GEBAK(
const char& JOBZ, 
const char& SIDE, 
const int& n, 
const int& ilo, 
const int& ihi, 
const float* scale, 
const int& m, std::complex<float>* V, 
const int& ldv, 
int* info)
 const 
 1239    CGEBAK_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(SIDE), &n, &ilo, &ihi, scale, &m, V, &ldv, info);
 
 1243#ifdef HAVE_TEUCHOS_LAPACKLARND 
 1244  std::complex<float> LAPACK<int, std::complex<float> >::LARND( 
const int& idist, 
int* seed )
 const 
 1246    float _Complex z = CLARND_F77(&idist, seed);
 
 1247    return TEUCHOS_LAPACK_CONVERT_COMPLEX_FORTRAN_TO_CXX(
float, z);
 
 1251  void LAPACK<int, std::complex<float> >::LARNV( 
const int& idist, 
int* seed, 
const int& n, std::complex<float>* v )
 const 
 1253    CLARNV_F77(&idist, seed, &n, v);
 
 1257  int LAPACK<int, std::complex<float> >::ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1, 
const int& N2, 
const int& N3, 
const int& N4 )
 const 
 1259    unsigned int opts_length = OPTS.length();
 
 1260    std::string temp_NAME = 
"c" + NAME;
 
 1261    unsigned int name_length = temp_NAME.length();
 
 1262    return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
 
 1270  void LAPACK<int, std::complex<double> >::PTTRF(
const int& n, 
double* d, std::complex<double>* e, 
int* info)
 const 
 1272    ZPTTRF_F77(&n,d,e,info);
 
 1276  void LAPACK<int, std::complex<double> >::PTTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const double* d, 
const std::complex<double>* e, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1278    ZPTTRS_F77(CHAR_MACRO(UPLO),&n,&nrhs,d,e,B,&ldb,info);
 
 1282  void LAPACK<int, std::complex<double> >::POTRF(
const char& UPLO, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1284    ZPOTRF_F77(CHAR_MACRO(UPLO), &n, A, &lda, info);
 
 1288  void LAPACK<int, std::complex<double> >::POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1290    ZPOTRS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
 
 1294  void LAPACK<int, std::complex<double> >::POTRI(
const char& UPLO, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1296    ZPOTRI_F77(CHAR_MACRO(UPLO), &n, A, &lda, info);
 
 1300  void LAPACK<int, std::complex<double> >::POCON(
const char& UPLO, 
const int& n, 
const std::complex<double>* A, 
const int& lda, 
const double& anorm, 
double* rcond, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1302    ZPOCON_F77(CHAR_MACRO(UPLO), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
 
 1306  void LAPACK<int, std::complex<double> >::POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1308    ZPOSV_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
 
 1312  void LAPACK<int, std::complex<double> >::POEQU(
const int& n, 
const std::complex<double>* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info)
 const 
 1314    ZPOEQU_F77(&n, A, &lda, S, scond, amax, info);
 
 1318  void LAPACK<int, std::complex<double> >::PORFS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, 
const std::complex<double>* AF, 
const int& ldaf, 
const std::complex<double>* B, 
const int& ldb, std::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1320    ZPORFS_F77(CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
 1323  void LAPACK<int, std::complex<double> >::POSVX(
const char& FACT, 
const char& UPLO, 
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, std::complex<double>* AF, 
const int& ldaf, 
char* EQUED, 
double* S, std::complex<double>* B, 
const int& ldb, std::complex<double>* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1325    ZPOSVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, CHARPTR_MACRO(EQUED), S, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
 
 1329  void LAPACK<int,std::complex<double> >::GELS(
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1331    ZGELS_F77(CHAR_MACRO(
TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info);
 
 1335  void LAPACK<int, std::complex<double> >::GELSS(
const int& m, 
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
double* S, 
const double& rcond, 
int* rank, std::complex<double>* WORK, 
const int& lwork, 
double* rwork, 
int* info)
 const 
 1337    ZGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
 
 1341  void LAPACK<int,std::complex<double> >::GEQRF( 
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* TAU, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1343    ZGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info);
 
 1346  void LAPACK<int,std::complex<double> >::GEQR2 (
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* TAU, std::complex<double>* WORK, 
int* 
const info)
 const 
 1348    ZGEQR2_F77(&m, &n, A, &lda, TAU, WORK, info);
 
 1351  void LAPACK<int,std::complex<double> >::UNGQR(
const int& m, 
const int& n, 
const int& k, std::complex<double>* A, 
const int& lda, 
const std::complex<double>* TAU, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1353    ZUNGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
 
 1357  void LAPACK<int,std::complex<double> >::UNMQR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const std::complex<double>* A, 
const int& lda, 
const std::complex<double>* TAU, std::complex<double>* C, 
const int& ldc, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1359    ZUNMQR_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
 
 1362  void LAPACK<int,std::complex<double> >::UNM2R (
const char& SIDE, 
const char& 
TRANS, 
const int& M, 
const int& N, 
const int& K, 
const std::complex<double>* A, 
const int& LDA, 
const std::complex<double>* TAU, std::complex<double>* C, 
const int& LDC, std::complex<double>* WORK, 
int* 
const INFO)
 const 
 1364    ZUNM2R_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &M, &N, &K, A, &LDA, TAU, C, &LDC, WORK, INFO);
 
 1367  void LAPACK<int,std::complex<double> >::GETRF(
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 1369    ZGETRF_F77(&m, &n, A, &lda, IPIV, info);
 
 1373  void LAPACK<int,std::complex<double> >::GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, 
const int* IPIV, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1375    ZGETRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
 1379  void LAPACK<int,std::complex<double> >::LASCL(
const char& TYPE, 
const int& kl, 
const int& ku, 
const double& cfrom, 
const double& cto, 
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1380  { ZLASCL_F77(CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, A, &lda, info); }
 
 1382  void LAPACK<int,std::complex<double> >::GEQP3(
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* jpvt, std::complex<double>* TAU, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info )
 const 
 1384    ZGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
 
 1387  void LAPACK<int, std::complex<double> >::LASWP (
const int& N, std::complex<double>* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX)
 const 
 1389    ZLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX);
 
 1392  void LAPACK<int,std::complex<double> >::GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, std::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 1394    ZGBTRF_F77(&m, &n, &kl, &ku, A, &lda, IPIV, info);
 
 1398  void LAPACK<int,std::complex<double> >::GBTRS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, 
const int* IPIV, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1400    ZGBTRS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
 1404  void LAPACK<int,std::complex<double> >::GTTRF(
const int& n, std::complex<double>* dl, std::complex<double>* d, std::complex<double>* du, std::complex<double>* du2, 
int* IPIV, 
int* info)
 const 
 1406    ZGTTRF_F77(&n, dl, d, du, du2, IPIV, info);
 
 1410  void LAPACK<int,std::complex<double> >::GTTRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<double>* dl, 
const std::complex<double>* d, 
const std::complex<double>* du, 
const std::complex<double>* du2, 
const int* IPIV, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1412    ZGTTRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info);
 
 1416  void LAPACK<int,std::complex<double> >::GETRI(
const int& n, std::complex<double>* A, 
const int& lda, 
const int* IPIV, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1418    ZGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info);
 
 1421  void LAPACK<int, std::complex<double> >::LATRS (
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const char& NORMIN, 
const int& N, 
const std::complex<double>* A, 
const int& LDA, std::complex<double>* X, 
double* SCALE, 
double* CNORM, 
int* INFO)
 const 
 1423    ZLATRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
 
 1426  void LAPACK<int,std::complex<double> >::GECON(
const char& NORM, 
const int& n, 
const std::complex<double>* A, 
const int& lda, 
const double& anorm, 
double* rcond, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1428    ZGECON_F77(CHAR_MACRO(NORM), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
 
 1432  void LAPACK<int,std::complex<double> >::GBCON(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<double>* A, 
const int& lda, 
const int* IPIV, 
const double& anorm, 
double* rcond, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1434    ZGBCON_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
 
 1438  double LAPACK<int,std::complex<double> >::LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<double>* A, 
const int& lda, 
double* WORK)
 const 
 1440    return( ZLANGB_F77(CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, WORK) );
 
 1444  void LAPACK<int,std::complex<double> >::GESV(
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, 
int* IPIV, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1446    ZGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info);
 
 1450  void LAPACK<int,std::complex<double> >::GEEQU(
const int& m, 
const int& n, 
const std::complex<double>* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
 1452    ZGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info);
 
 1456  void LAPACK<int,std::complex<double> >::GERFS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, 
const std::complex<double>* AF, 
const int& ldaf, 
const int* IPIV, 
const std::complex<double>* B, 
const int& ldb, std::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1458    ZGERFS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
 1462  void LAPACK<int,std::complex<double> >::GBEQU(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
const std::complex<double>* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
 1464    ZGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info);
 
 1468  void LAPACK<int,std::complex<double> >::GBRFS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, 
const std::complex<double>* AF, 
const int& ldaf, 
const int* IPIV, 
const std::complex<double>* B, 
const int& ldb, std::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1470    ZGBRFS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
 
 1473  void LAPACK<int,std::complex<double> >::GESVX(
const char& FACT, 
const char& 
TRANS, 
const int& n, 
const int& nrhs, std::complex<double>* A, 
const int& lda, std::complex<double>* AF, 
const int& ldaf, 
int* IPIV, 
char* EQUED, 
double* R, 
double* C, std::complex<double>* B, 
const int& ldb, std::complex<double>* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1475    ZGESVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(
TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, CHARPTR_MACRO(EQUED), R, C, B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
 
 1479  void LAPACK<int,std::complex<double> >::GEHRD(
const int& n, 
const int& ilo, 
const int& ihi, std::complex<double>* A, 
const int& lda, std::complex<double>* TAU, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1481    ZGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
 
 1485  void LAPACK<int,std::complex<double> >::TRTRS(
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const int& n, 
const int& nrhs, 
const std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1487    ZTRTRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), &n, &nrhs, A, &lda, B, &ldb, info);
 
 1491  void LAPACK<int,std::complex<double> >::TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1493    ZTRTRI_F77(CHAR_MACRO(UPLO), CHAR_MACRO(DIAG), &n, A, &lda, info);
 
 1497  void LAPACK<int,std::complex<double> >::STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, std::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
 1499    ZSTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
 
 1503  void LAPACK<int,std::complex<double> >::PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, std::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
 1505    ZPTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
 
 1509  void LAPACK<int,std::complex<double> >::HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, std::complex<double> * A, 
const int& lda, 
double*  W, std::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1511    ZHEEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, W, WORK, &lwork, RWORK, info);
 
 1515  void LAPACK<int,std::complex<double> >::HEGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, std::complex<double> * A, 
const int& lda, std::complex<double> * B, 
const int& ldb, 
double*  W, std::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1517    ZHEGV_F77(&itype, CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, RWORK, info);
 
 1521  void LAPACK<int, std::complex<double> >::HSEQR(
const char& JOB, 
const char& COMPZ, 
const int& n, 
const int& ilo, 
const int& ihi, std::complex<double>* H, 
const int& ldh, std::complex<double>* W, std::complex<double>* Z, 
const int& ldz, std::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1523    ZHSEQR_F77(CHAR_MACRO(JOB), CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
 
 1527  void LAPACK<int, std::complex<double> >::GEES(
const char& JOBVS, 
const char& SORT, 
int (*ptr2func)(std::complex<double>*), 
const int& n, std::complex<double>* A, 
const int& lda, 
int* sdim, std::complex<double>* W, std::complex<double>* VS, 
const int& ldvs, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* BWORK, 
int* info)
 const 
 1529    ZGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
 
 1533  void LAPACK<int, std::complex<double> >::GEES(
const char& JOBVS, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* sdim, 
double* WR, 
double* WI, std::complex<double>* VS, 
const int& ldvs, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* BWORK, 
int* info)
 const 
 1535    int (*nullfptr)(std::complex<double>*) = NULL;
 
 1536    std::vector< std::complex<double> > W(n);
 
 1537    const char sort = 
'N';
 
 1538    ZGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
 
 1539    for (
int i=0; i<n; i++) {
 
 1540      WR[i] = W[i].real();
 
 1541      WI[i] = W[i].imag();
 
 1546  void LAPACK<int, std::complex<double> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* W, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1548    ZGEEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
 
 1552  void LAPACK<int, std::complex<double> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<double>* A, 
const int& lda, 
double* WR, 
double* WI, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1554    std::vector<std::complex<double> > w (n);
 
 1555    std::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1556    GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
 
 1560      for (
int k = 0; k < n; ++k) {
 
 1561        WR[k] = w[k].real ();
 
 1562        WI[k] = w[k].imag ();
 
 1568  void LAPACK<int, std::complex<double> >::GESVD(
const char& JOBU, 
const char& JOBVT, 
const int& m, 
const int& n, std::complex<double> * A, 
const int& lda, 
double* S, std::complex<double> * U, 
const int& ldu, std::complex<double> * V, 
const int& ldv, std::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const {
 
 1569    ZGESVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
 
 1572  void LAPACK<int, std::complex<double> >::GEEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* W, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* SCALE, 
double* abnrm, 
double* RCONDE, 
double* RCONDV, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1574    ZGEEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, info);
 
 1577  void LAPACK<int, std::complex<double> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1579    ZGGEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, IWORK, BWORK, info);
 
 1582  void LAPACK<int, std::complex<double> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, std::complex<double>* BETA, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, std::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1584    std::vector<std::complex<double> > w (n);
 
 1585    std::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1586    GGEVX(BALANC, JOBVL, JOBVR, SENSE, n, A, lda, B, ldb, w_rawPtr, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, RWORK, IWORK, BWORK, info);
 
 1590      for (
int k = 0; k < n; ++k) {
 
 1591        ALPHAR[k] = w[k].real ();
 
 1592        ALPHAI[k] = w[k].imag ();
 
 1597 void LAPACK<int, std::complex<double> >::GGEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, std::complex<double> *A, 
const int& lda, std::complex<double> *B, 
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, std::complex<double> *WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1599    ZGGEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info); 
 
 1602  void LAPACK<int, std::complex<double> >::GGES(
const char& JOBVL, 
const char& JOBVR, 
const char& SORT, 
int (*ptr2func)(std::complex<double>*, std::complex<double>*), 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, 
int* sdim, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, std::complex<double>* WORK, 
const int& lwork, 
double* rwork, 
int* bwork, 
int* info )
 const 
 1604    ZGGES_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SORT), ptr2func, &n, A, &lda, B, &ldb, sdim, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, rwork, bwork, info); 
 
 1606  void LAPACK<int, std::complex<double> >::TGSEN(
const int& ijob, 
const int& wantq, 
const int& wantz, 
const int* SELECT, 
const int& n, std::complex<double>* A, 
const int& lda, std::complex<double>* B, 
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* Q, 
const int& ldq, std::complex<double>* Z, 
const int& ldz, 
int* M, 
double* PL, 
double* PR, 
double* DIF, std::complex<double>* WORK, 
const int& lwork, 
int* IWORK, 
const int& liwork, 
int* info )
 const 
 1608    ZTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, A, &lda, B, &ldb, ALPHA, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info); 
 
 1611  void LAPACK<int, std::complex<double> >::TREVC(
const char& SIDE, 
const char& HOWMNY, 
int* select, 
const int& n, 
const std::complex<double>* T, 
const int& ldt, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, 
const int& mm, 
int* m, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1613    ZTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
 
 1617  void LAPACK<int, std::complex<double> >::TREVC(
const char& SIDE, 
const int& n, 
const std::complex<double>* T, 
const int& ldt, std::complex<double>* VL, 
const int& ldvl, std::complex<double>* VR, 
const int& ldvr, 
const int& mm, 
int* m, std::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1619    std::vector<int> select(1);
 
 1620    const char& whch = 
'A';
 
 1621    ZTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
 
 1624  void LAPACK<int, std::complex<double> >::TREXC(
const char& COMPQ, 
const int& n, std::complex<double>* T, 
const int& ldt, std::complex<double>* Q, 
const int& ldq, 
int* ifst, 
int* ilst, std::complex<double>* WORK, 
int* info)
 const 
 1626    ZTREXC_F77(CHAR_MACRO(COMPQ), &n, T, &ldt, Q, &ldq, ifst, ilst, info);
 
 1629  void LAPACK<int, std::complex<double> >::LARTG( 
const std::complex<double> f, 
const std::complex<double> g, 
double* c, std::complex<double>* s, std::complex<double>* r )
 const 
 1631    ZLARTG_F77(&f, &g, c, s, r);
 
 1635  void LAPACK<int, std::complex<double> >::LARFG( 
const int& n, std::complex<double>* alpha, std::complex<double>* x, 
const int& incx, std::complex<double>* tau )
 const 
 1637    ZLARFG_F77(&n, alpha, x, &incx, tau);
 
 1640  void LAPACK<int, std::complex<double> >::GEBAL(
const char& JOBZ, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info)
 const 
 1642    ZGEBAL_F77(CHAR_MACRO(JOBZ),&n, A, &lda, ilo, ihi, scale, info);
 
 1646  void LAPACK<int, std::complex<double> >::GEBAK(
const char& JOBZ, 
const char& SIDE, 
const int& n, 
const int& ilo, 
const int& ihi, 
const double* scale, 
const int& m, std::complex<double>* V, 
const int& ldv, 
int* info)
 const 
 1648    ZGEBAK_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(SIDE), &n, &ilo, &ihi, scale, &m, V, &ldv, info);
 
 1652#ifdef HAVE_TEUCHOS_LAPACKLARND 
 1653  std::complex<double> LAPACK<int, std::complex<double> >::LARND( 
const int& idist, 
int* seed )
 const 
 1655    double _Complex z = ZLARND_F77(&idist, seed);
 
 1656    return TEUCHOS_LAPACK_CONVERT_COMPLEX_FORTRAN_TO_CXX(
double, z);
 
 1660  void LAPACK<int, std::complex<double> >::LARNV( 
const int& idist, 
int* seed, 
const int& n, std::complex<double>* v )
 const 
 1662    ZLARNV_F77(&idist, seed, &n, v);
 
 1666  int LAPACK<int, std::complex<double> >::ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1, 
const int& N2, 
const int& N3, 
const int& N4 )
 const 
 1668    unsigned int opts_length = OPTS.length();
 
 1669    std::string temp_NAME = 
"z" + NAME;
 
 1670    unsigned int name_length = temp_NAME.length();
 
 1671    return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
 
 1677#ifdef HAVE_TEUCHOSCORE_KOKKOS 
 1678  void LAPACK<int, Kokkos::complex<double> >::PTTRF(
const int& n, 
double* d, Kokkos::complex<double>* e, 
int* info)
 const 
 1680    ZPTTRF_F77(&n, d, 
reinterpret_cast<std::complex<double>*
>(e), info);
 
 1684  void LAPACK<int, Kokkos::complex<double> >::PTTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const double* d, 
const Kokkos::complex<double>* e, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1686    ZPTTRS_F77(CHAR_MACRO(UPLO), &n, &nrhs, d, 
reinterpret_cast<const std::complex<double>*
>(e), 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1690  void LAPACK<int, Kokkos::complex<double> >::POTRF(
const char& UPLO, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1692    ZPOTRF_F77(CHAR_MACRO(UPLO), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
 
 1696  void LAPACK<int, Kokkos::complex<double> >::POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1698    ZPOTRS_F77(CHAR_MACRO(UPLO), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1702  void LAPACK<int, Kokkos::complex<double> >::POTRI(
const char& UPLO, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1704    ZPOTRI_F77(CHAR_MACRO(UPLO), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
 
 1708  void LAPACK<int, Kokkos::complex<double> >::POCON(
const char& UPLO, 
const int& n, 
const Kokkos::complex<double>* A, 
const int& lda, 
const double& anorm, 
double* rcond, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1710    ZPOCON_F77(CHAR_MACRO(UPLO), &n, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, &anorm, rcond, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1714  void LAPACK<int, Kokkos::complex<double> >::POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1716    ZPOSV_F77(CHAR_MACRO(UPLO), &n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1720  void LAPACK<int, Kokkos::complex<double> >::POEQU(
const int& n, 
const Kokkos::complex<double>* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info)
 const 
 1722    ZPOEQU_F77(&n, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, S, scond, amax, info);
 
 1726  void LAPACK<int, Kokkos::complex<double> >::PORFS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, 
const Kokkos::complex<double>* AF, 
const int& ldaf, 
const Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1728    ZPORFS_F77(CHAR_MACRO(UPLO), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf, 
reinterpret_cast<const std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1731  void LAPACK<int, Kokkos::complex<double> >::POSVX(
const char& FACT, 
const char& UPLO, 
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* AF, 
const int& ldaf, 
char* EQUED, 
double* S, Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1733    ZPOSVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(UPLO), &n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(AF), &ldaf, CHARPTR_MACRO(EQUED), S, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(X), &ldx, rcond, FERR, BERR, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1737  void LAPACK<int,Kokkos::complex<double> >::GELS(
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1739    ZGELS_F77(CHAR_MACRO(
TRANS), &m, &n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1743  void LAPACK<int, Kokkos::complex<double> >::GELSS(
const int& m, 
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
double* S, 
const double& rcond, 
int* rank, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* rwork, 
int* info)
 const 
 1745    ZGELSS_F77(&m, &n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, S, &rcond, rank, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, rwork, info);
 
 1749  void LAPACK<int,Kokkos::complex<double> >::GEQRF( 
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1751    ZGEQRF_F77(&m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1754  void LAPACK<int,Kokkos::complex<double> >::GEQR2 (
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK, 
int* 
const info)
 const 
 1756    ZGEQR2_F77(&m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(WORK), info);
 
 1759  void LAPACK<int,Kokkos::complex<double> >::UNGQR(
const int& m, 
const int& n, 
const int& k, Kokkos::complex<double>* A, 
const int& lda, 
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1761    ZUNGQR_F77( &m, &n, &k, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<const std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1765  void LAPACK<int,Kokkos::complex<double> >::UNMQR(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const Kokkos::complex<double>* A, 
const int& lda, 
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C, 
const int& ldc, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1767    ZUNMQR_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &m, &n, &k, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<const std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(C), &ldc, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1770  void LAPACK<int,Kokkos::complex<double> >::UNM2R (
const char& SIDE, 
const char& 
TRANS, 
const int& M, 
const int& N, 
const int& K, 
const Kokkos::complex<double>* A, 
const int& LDA, 
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C, 
const int& LDC, Kokkos::complex<double>* WORK, 
int* 
const INFO)
 const 
 1772    ZUNM2R_F77(CHAR_MACRO(SIDE), CHAR_MACRO(
TRANS), &M, &N, &K, 
reinterpret_cast<const std::complex<double>*
>(A), &LDA, 
reinterpret_cast<const std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(C), &LDC, 
reinterpret_cast<std::complex<double>*
>(WORK), INFO);
 
 1775  void LAPACK<int,Kokkos::complex<double> >::GETRF(
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 1777    ZGETRF_F77(&m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, info);
 
 1781  void LAPACK<int,Kokkos::complex<double> >::GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, 
const int* IPIV, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1783    ZGETRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1787  void LAPACK<int,Kokkos::complex<double> >::LASCL(
const char& TYPE, 
const int& kl, 
const int& ku, 
const double& cfrom, 
const double& cto, 
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1788  { ZLASCL_F77(CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, info); }
 
 1790  void LAPACK<int,Kokkos::complex<double> >::GEQP3(
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* jpvt, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info )
 const 
 1792    ZGEQP3_F77(&m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, jpvt, 
reinterpret_cast<std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1795  void LAPACK<int, Kokkos::complex<double> >::LASWP (
const int& N, Kokkos::complex<double>* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX)
 const 
 1797    ZLASWP_F77(&N, 
reinterpret_cast<std::complex<double>*
>(A), &LDA, &K1, &K2, IPIV, &INCX);
 
 1800  void LAPACK<int,Kokkos::complex<double> >::GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, Kokkos::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 1802    ZGBTRF_F77(&m, &n, &kl, &ku, 
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, info);
 
 1806  void LAPACK<int,Kokkos::complex<double> >::GBTRS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, 
const int* IPIV, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1808    ZGBTRS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1812  void LAPACK<int,Kokkos::complex<double> >::GTTRF(
const int& n, Kokkos::complex<double>* dl, Kokkos::complex<double>* d, Kokkos::complex<double>* du, Kokkos::complex<double>* du2, 
int* IPIV, 
int* info)
 const 
 1814    ZGTTRF_F77(&n, 
reinterpret_cast<std::complex<double>*
>(dl), 
reinterpret_cast<std::complex<double>*
>(d), 
reinterpret_cast<std::complex<double>*
>(du), 
reinterpret_cast<std::complex<double>*
>(du2), IPIV, info);
 
 1818  void LAPACK<int,Kokkos::complex<double> >::GTTRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* dl, 
const Kokkos::complex<double>* d, 
const Kokkos::complex<double>* du, 
const Kokkos::complex<double>* du2, 
const int* IPIV, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1820    ZGTTRS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(dl), 
reinterpret_cast<const std::complex<double>*
>(d), 
reinterpret_cast<const std::complex<double>*
>(du), 
reinterpret_cast<const std::complex<double>*
>(du2), IPIV, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1824  void LAPACK<int,Kokkos::complex<double> >::GETRI(
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
const int* IPIV, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1826    ZGETRI_F77(&n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1829  void LAPACK<int, Kokkos::complex<double> >::LATRS (
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const char& NORMIN, 
const int& N, 
const Kokkos::complex<double>* A, 
const int& LDA, Kokkos::complex<double>* X, 
double* SCALE, 
double* CNORM, 
int* INFO)
 const 
 1831    ZLATRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), CHAR_MACRO(NORMIN), &N, 
reinterpret_cast<const std::complex<double>*
>(A), &LDA, 
reinterpret_cast<std::complex<double>*
>(X), SCALE, CNORM, INFO);
 
 1834  void LAPACK<int,Kokkos::complex<double> >::GECON(
const char& NORM, 
const int& n, 
const Kokkos::complex<double>* A, 
const int& lda, 
const double& anorm, 
double* rcond, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1836    ZGECON_F77(CHAR_MACRO(NORM), &n, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, &anorm, rcond, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1840  void LAPACK<int,Kokkos::complex<double> >::GBCON(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const Kokkos::complex<double>* A, 
const int& lda, 
const int* IPIV, 
const double& anorm, 
double* rcond, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1842    ZGBCON_F77(CHAR_MACRO(NORM), &n, &kl, &ku, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV, &anorm, rcond, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1846  double LAPACK<int,Kokkos::complex<double> >::LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const Kokkos::complex<double>* A, 
const int& lda, 
double* WORK)
 const 
 1848    return( ZLANGB_F77(CHAR_MACRO(NORM), &n, &kl, &ku, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, WORK) );
 
 1852  void LAPACK<int,Kokkos::complex<double> >::GESV(
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, 
int* IPIV, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1854    ZGESV_F77(&n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1858  void LAPACK<int,Kokkos::complex<double> >::GEEQU(
const int& m, 
const int& n, 
const Kokkos::complex<double>* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
 1860    ZGEEQU_F77(&m, &n, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, R, C, rowcond, colcond, amax, info);
 
 1864  void LAPACK<int,Kokkos::complex<double> >::GERFS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, 
const Kokkos::complex<double>* AF, 
const int& ldaf, 
const int* IPIV, 
const Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1866    ZGERFS_F77(CHAR_MACRO(
TRANS), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf, IPIV, 
reinterpret_cast<const std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1870  void LAPACK<int,Kokkos::complex<double> >::GBEQU(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
const Kokkos::complex<double>* A, 
const int& lda, 
double* R, 
double* C, 
double* rowcond, 
double* colcond, 
double* amax, 
int* info)
 const 
 1872    ZGBEQU_F77(&m, &n, &kl, &ku, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, R, C, rowcond, colcond, amax, info);
 
 1876  void LAPACK<int,Kokkos::complex<double> >::GBRFS(
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, 
const Kokkos::complex<double>* AF, 
const int& ldaf, 
const int* IPIV, 
const Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* X, 
const int& ldx, 
double* FERR, 
double* BERR, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1878    ZGBRFS_F77(CHAR_MACRO(
TRANS), &n, &kl, &ku, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf, IPIV, 
reinterpret_cast<const std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1881  void LAPACK<int,Kokkos::complex<double> >::GESVX(
const char& FACT, 
const char& 
TRANS, 
const int& n, 
const int& nrhs, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* AF, 
const int& ldaf, 
int* IPIV, 
char* EQUED, 
double* R, 
double* C, Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* X, 
const int& ldx, 
double* rcond, 
double* FERR, 
double* BERR, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 1883    ZGESVX_F77(CHAR_MACRO(FACT), CHAR_MACRO(
TRANS), &n, &nrhs, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(AF), &ldaf, IPIV, CHARPTR_MACRO(EQUED), R, C, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(X), &ldx, rcond, FERR, BERR, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 1887  void LAPACK<int,Kokkos::complex<double> >::GEHRD(
const int& n, 
const int& ilo, 
const int& ihi, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1889    ZGEHRD_F77(&n, &ilo, &ihi, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(TAU), 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1893  void LAPACK<int,Kokkos::complex<double> >::TRTRS(
const char& UPLO, 
const char& 
TRANS, 
const char& DIAG, 
const int& n, 
const int& nrhs, 
const Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
int* info)
 const 
 1895    ZTRTRS_F77(CHAR_MACRO(UPLO), CHAR_MACRO(
TRANS), CHAR_MACRO(DIAG), &n, &nrhs, 
reinterpret_cast<const std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
 
 1899  void LAPACK<int,Kokkos::complex<double> >::TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info)
 const 
 1901    ZTRTRI_F77(CHAR_MACRO(UPLO), CHAR_MACRO(DIAG), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
 
 1905  void LAPACK<int,Kokkos::complex<double> >::STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, Kokkos::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
 1907    ZSTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, 
reinterpret_cast<std::complex<double>*
>(Z), &ldz, WORK, info);
 
 1911  void LAPACK<int,Kokkos::complex<double> >::PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, Kokkos::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info)
 const 
 1913    ZPTEQR_F77(CHAR_MACRO(COMPZ), &n, D, E, 
reinterpret_cast<std::complex<double>*
>(Z), &ldz, WORK, info);
 
 1917  void LAPACK<int,Kokkos::complex<double> >::HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, Kokkos::complex<double> * A, 
const int& lda, 
double* W, Kokkos::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1919    ZHEEV_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, W, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1923  void LAPACK<int,Kokkos::complex<double> >::HEGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, Kokkos::complex<double> * A, 
const int& lda, Kokkos::complex<double> * B, 
const int& ldb, 
double* W, Kokkos::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1925    ZHEGV_F77(&itype, CHAR_MACRO(JOBZ), CHAR_MACRO(UPLO), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, W, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1929  void LAPACK<int, Kokkos::complex<double> >::HSEQR(
const char& JOB, 
const char& COMPZ, 
const int& n, 
const int& ilo, 
const int& ihi, Kokkos::complex<double>* H, 
const int& ldh, Kokkos::complex<double>* W, Kokkos::complex<double>* Z, 
const int& ldz, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info)
 const 
 1931    ZHSEQR_F77(CHAR_MACRO(JOB), CHAR_MACRO(COMPZ), &n, &ilo, &ihi, 
reinterpret_cast<std::complex<double>*
>(H), &ldh, 
reinterpret_cast<std::complex<double>*
>(W), 
reinterpret_cast<std::complex<double>*
>(Z), &ldz, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
 
 1935  void LAPACK<int, Kokkos::complex<double> >::GEES(
const char& JOBVS, 
const char& SORT, 
int (*ptr2func)(std::complex<double>*), 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* sdim, Kokkos::complex<double>* W, Kokkos::complex<double>* VS, 
const int& ldvs, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* BWORK, 
int* info)
 const 
 1937    ZGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(SORT), ptr2func, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, sdim, 
reinterpret_cast<std::complex<double>*
>(W), 
reinterpret_cast<std::complex<double>*
>(VS), &ldvs, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, BWORK, info);
 
 1941  void LAPACK<int, Kokkos::complex<double> >::GEES(
const char& JOBVS, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* sdim, 
double* WR, 
double* WI, Kokkos::complex<double>* VS, 
const int& ldvs, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* BWORK, 
int* info)
 const 
 1943    int (*nullfptr)(std::complex<double>*) = NULL;
 
 1944    std::vector< std::complex<double> > W(n);
 
 1945    const char sort = 
'N';
 
 1946    ZGEES_F77(CHAR_MACRO(JOBVS), CHAR_MACRO(sort), nullfptr, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, sdim, &W[0], 
reinterpret_cast<std::complex<double>*
>(VS), &ldvs, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, BWORK, info);
 
 1947    for (
int i=0; i<n; i++) {
 
 1948      WR[i] = W[i].real();
 
 1949      WI[i] = W[i].imag();
 
 1954  void LAPACK<int, Kokkos::complex<double> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1956    ZGEEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(W), 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1960  void LAPACK<int, Kokkos::complex<double> >::GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
double* WR, 
double* WI, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1962    std::vector<Kokkos::complex<double> > w (n);
 
 1963    Kokkos::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1964    GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
 
 1968      for (
int k = 0; k < n; ++k) {
 
 1969        WR[k] = w[k].real ();
 
 1970        WI[k] = w[k].imag ();
 
 1976  void LAPACK<int, Kokkos::complex<double> >::GESVD(
const char& JOBU, 
const char& JOBVT, 
const int& m, 
const int& n, Kokkos::complex<double> * A, 
const int& lda, 
double* S, Kokkos::complex<double> * U, 
const int& ldu, Kokkos::complex<double> * V, 
const int& ldv, Kokkos::complex<double> * WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const {
 
 1977    ZGESVD_F77(CHAR_MACRO(JOBU), CHAR_MACRO(JOBVT), &m, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, S, 
reinterpret_cast<std::complex<double>*
>(U), &ldu, 
reinterpret_cast<std::complex<double>*
>(V), &ldv, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1980  void LAPACK<int, Kokkos::complex<double> >::GEEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* SCALE, 
double* abnrm, 
double* RCONDE, 
double* RCONDV, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 1982    ZGEEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(W), 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
 
 1985  void LAPACK<int, Kokkos::complex<double> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1987    ZGGEVX_F77(CHAR_MACRO(BALANC), CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SENSE), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(ALPHA), 
reinterpret_cast<std::complex<double>*
>(BETA), 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, IWORK, BWORK, info);
 
 1990  void LAPACK<int, Kokkos::complex<double> >::GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
double* ALPHAR, 
double* ALPHAI, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
double* lscale, 
double* rscale, 
double* abnrm, 
double* bbnrm, 
double* RCONDE, 
double* RCONDV, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* RWORK, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 1992    std::vector<Kokkos::complex<double> > w (n);
 
 1993    Kokkos::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
 
 1994    GGEVX(BALANC, JOBVL, JOBVR, SENSE, n, A, lda, B, ldb, w_rawPtr, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, RWORK, IWORK, BWORK, info);
 
 1998      for (
int k = 0; k < n; ++k) {
 
 1999        ALPHAR[k] = w[k].real ();
 
 2000        ALPHAI[k] = w[k].imag ();
 
 2005 void LAPACK<int, Kokkos::complex<double> >::GGEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, Kokkos::complex<double> *A, 
const int& lda, Kokkos::complex<double> *B, 
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, Kokkos::complex<double> *WORK, 
const int& lwork, 
double* RWORK, 
int* info)
 const 
 2007    ZGGEV_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(ALPHA), 
reinterpret_cast<std::complex<double>*
>(BETA), 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info); 
 
 2010  void LAPACK<int, Kokkos::complex<double> >::GGES(
const char& JOBVL, 
const char& JOBVR, 
const char& SORT, 
int (*ptr2func)(std::complex<double>*, std::complex<double>*), 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, 
int* sdim, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, Kokkos::complex<double>* WORK, 
const int& lwork, 
double* rwork, 
int* bwork, 
int* info )
 const 
 2012    ZGGES_F77(CHAR_MACRO(JOBVL), CHAR_MACRO(JOBVR), CHAR_MACRO(SORT), ptr2func, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, sdim, 
reinterpret_cast<std::complex<double>*
>(ALPHA), 
reinterpret_cast<std::complex<double>*
>(BETA), 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, rwork, bwork, info); 
 
 2014  void LAPACK<int, Kokkos::complex<double> >::TGSEN(
const int& ijob, 
const int& wantq, 
const int& wantz, 
const int* SELECT, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, Kokkos::complex<double>* B, 
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* Q, 
const int& ldq, Kokkos::complex<double>* Z, 
const int& ldz, 
int* M, 
double* PL, 
double* PR, 
double* DIF, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* IWORK, 
const int& liwork, 
int* info )
 const 
 2016    ZTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, 
reinterpret_cast<std::complex<double>*
>(B), &ldb, 
reinterpret_cast<std::complex<double>*
>(ALPHA), 
reinterpret_cast<std::complex<double>*
>(BETA), 
reinterpret_cast<std::complex<double>*
>(Q), &ldq, 
reinterpret_cast<std::complex<double>*
>(Z), &ldz, M, PL, PR, DIF, 
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, IWORK, &liwork, info); 
 
 2019  void LAPACK<int, Kokkos::complex<double> >::TREVC(
const char& SIDE, 
const char& HOWMNY, 
int* select, 
const int& n, 
const Kokkos::complex<double>* T, 
const int& ldt, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, 
const int& mm, 
int* m, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 2021    ZTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(HOWMNY), select, &n, 
reinterpret_cast<const std::complex<double>*
>(T), &ldt, 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, &mm, m, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 2025  void LAPACK<int, Kokkos::complex<double> >::TREVC(
const char& SIDE, 
const int& n, 
const Kokkos::complex<double>* T, 
const int& ldt, Kokkos::complex<double>* VL, 
const int& ldvl, Kokkos::complex<double>* VR, 
const int& ldvr, 
const int& mm, 
int* m, Kokkos::complex<double>* WORK, 
double* RWORK, 
int* info)
 const 
 2027    std::vector<int> select(1);
 
 2028    const char& whch = 
'A';
 
 2029    ZTREVC_F77(CHAR_MACRO(SIDE), CHAR_MACRO(whch), &select[0], &n, 
reinterpret_cast<const std::complex<double>*
>(T), &ldt, 
reinterpret_cast<std::complex<double>*
>(VL), &ldvl, 
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, &mm, m, 
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
 
 2032  void LAPACK<int, Kokkos::complex<double> >::TREXC(
const char& COMPQ, 
const int& n, Kokkos::complex<double>* T, 
const int& ldt, Kokkos::complex<double>* Q, 
const int& ldq, 
int* ifst, 
int* ilst, Kokkos::complex<double>* WORK, 
int* info)
 const 
 2034    ZTREXC_F77(CHAR_MACRO(COMPQ), &n, 
reinterpret_cast<std::complex<double>*
>(T), &ldt, 
reinterpret_cast<std::complex<double>*
>(Q), &ldq, ifst, ilst, info);
 
 2037  void LAPACK<int, Kokkos::complex<double> >::LARTG( 
const Kokkos::complex<double> f, 
const Kokkos::complex<double> g, 
double* c, Kokkos::complex<double>* s, Kokkos::complex<double>* r )
 const 
 2039    ZLARTG_F77(
reinterpret_cast<const std::complex<double>*
>(&f), 
reinterpret_cast<const std::complex<double>*
>(&g), c, 
reinterpret_cast<std::complex<double>*
>(s), 
reinterpret_cast<std::complex<double>*
>(r));
 
 2043  void LAPACK<int, Kokkos::complex<double> >::LARFG( 
const int& n, Kokkos::complex<double>* alpha, Kokkos::complex<double>* x, 
const int& incx, Kokkos::complex<double>* tau )
 const 
 2045    ZLARFG_F77(&n, 
reinterpret_cast<std::complex<double>*
>(alpha), 
reinterpret_cast<std::complex<double>*
>(x), &incx, 
reinterpret_cast<std::complex<double>*
>(tau));
 
 2048  void LAPACK<int, Kokkos::complex<double> >::GEBAL(
const char& JOBZ, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info)
 const 
 2050    ZGEBAL_F77(CHAR_MACRO(JOBZ),&n, 
reinterpret_cast<std::complex<double>*
>(A), &lda, ilo, ihi, scale, info);
 
 2054  void LAPACK<int, Kokkos::complex<double> >::GEBAK(
const char& JOBZ, 
const char& SIDE, 
const int& n, 
const int& ilo, 
const int& ihi, 
const double* scale, 
const int& m, Kokkos::complex<double>* V, 
const int& ldv, 
int* info)
 const 
 2056    ZGEBAK_F77(CHAR_MACRO(JOBZ), CHAR_MACRO(SIDE), &n, &ilo, &ihi, scale, &m, 
reinterpret_cast<std::complex<double>*
>(V), &ldv, info);
 
 2060#ifdef HAVE_TEUCHOS_LAPACKLARND 
 2061  Kokkos::complex<double> LAPACK<int, Kokkos::complex<double> >::LARND( 
const int& idist, 
int* seed )
 const 
 2063    double _Complex z = ZLARND_F77(&idist, seed);
 
 2064    return reinterpret_cast<Kokkos::complex<double>&
>(z);
 
 2068  void LAPACK<int, Kokkos::complex<double> >::LARNV( 
const int& idist, 
int* seed, 
const int& n, Kokkos::complex<double>* v )
 const 
 2070    ZLARNV_F77(&idist, seed, &n, 
reinterpret_cast<std::complex<double>*
>(v));
 
 2074  int LAPACK<int, Kokkos::complex<double> >::ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1, 
const int& N2, 
const int& N3, 
const int& N4 )
 const 
 2076    unsigned int opts_length = OPTS.length();
 
 2077    std::string temp_NAME = 
"z" + NAME;
 
 2078    unsigned int name_length = temp_NAME.length();
 
 2079    return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
 
 2087#ifdef HAVE_TEUCHOSCORE_QUADMATH 
 2092  GEQRF(
const int& m, 
const int& n, __float128* A, 
const int& lda, __float128* TAU, __float128* WORK, 
const int& lwork, 
int* info)
 const 
 2094    Teuchos::Details::Lapack128 lapack;
 
 2095    lapack.GEQRF (m, n, A, lda, TAU, WORK, lwork, info);
 
 2099  GEQR2(
const int& m, 
const int& n, __float128* A, 
const int& lda, __float128* TAU, __float128* WORK, 
int* 
const info)
 const 
 2101    Teuchos::Details::Lapack128 lapack;
 
 2102    lapack.GEQR2 (m, n, A, lda, TAU, WORK, info);
 
 2106  GETRF(
const int& m, 
const int& n, __float128* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 2108    Teuchos::Details::Lapack128 lapack;
 
 2109    lapack.GETRF (m, n, A, lda, IPIV, info);
 
 2113  GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const __float128* A, 
const int& lda, 
const int* IPIV, __float128* B, 
const int& ldb, 
int* info)
 const 
 2115    Teuchos::Details::Lapack128 lapack;
 
 2116    lapack.GETRS (
TRANS, n, nrhs, A, lda, IPIV, B, ldb, info);
 
 2120  GETRI (
const int& n, __float128* A, 
const int& lda, 
const int* IPIV, __float128* WORK, 
const int& lwork, 
int* info)
 const 
 2122    Teuchos::Details::Lapack128 lapack;
 
 2123    lapack.GETRI (n, A, lda, 
const_cast<int*
> (IPIV), WORK, lwork, info);
 
 2127  LASWP (
const int& N, __float128* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX)
 const 
 2129    Teuchos::Details::Lapack128 lapack;
 
 2130    lapack.LASWP (N, A, LDA, K1, K2, IPIV, INCX);
 
 2134  ORM2R(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const __float128* A, 
const int& lda, 
const __float128* TAU, __float128* C, 
const int& ldc, __float128* WORK, 
int* 
const info)
 const 
 2136    Teuchos::Details::Lapack128 lapack;
 
 2137    lapack.ORM2R (SIDE, 
TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, info);
 
 2141  ORGQR(
const int& m, 
const int& n, 
const int& k, __float128* A, 
const int& lda, 
const __float128* TAU, __float128* WORK, 
const int& lwork, 
int* info)
 const 
 2143    Teuchos::Details::Lapack128 lapack;
 
 2144    lapack.ORGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
 
 2148  UNGQR(
const int& m, 
const int& n, 
const int& k, __float128* A, 
const int& lda, 
const __float128* TAU, __float128* WORK, 
const int& lwork, 
int* info)
 const 
 2150    Teuchos::Details::Lapack128 lapack;
 
 2151    lapack.UNGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
 
 2155  LARFG( 
const int& n, __float128* alpha, __float128* x, 
const int& incx, __float128* tau )
 const 
 2157    Teuchos::Details::Lapack128 lapack;
 
 2158    lapack.LARFG (n, alpha, x, incx, tau);
 
 2162  LAPY2 (
const __float128 x, 
const __float128 y)
 const 
 2164    Teuchos::Details::Lapack128 lapack;
 
 2165    return lapack.LAPY2 (x, y);
 
 2169  GBTRF (
const int& m, 
const int& n, 
const int& kl, 
const int& ku,
 
 2170         __float128* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 2172    Teuchos::Details::Lapack128 lapack;
 
 2173    return lapack.GBTRF (m, n, kl, ku, A, lda, IPIV, info);
 
 2177  GBTRS (
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku,
 
 2178         const int& nrhs, 
const __float128* A, 
const int& lda, 
const int* IPIV,
 
 2179         __float128* B, 
const int& ldb, 
int* info)
 const 
 2181    Teuchos::Details::Lapack128 lapack;
 
 2182    return lapack.GBTRS (
TRANS, n, kl, ku, nrhs, A, lda, IPIV, B, ldb, info);
 
 2186  LASCL (
const char& TYPE, 
const int& kl, 
const int& ku, 
const __float128 cfrom,
 
 2187         const __float128 cto, 
const int& m, 
const int& n, __float128* A,
 
 2188         const int& lda, 
int* info)
 const 
 2190    Teuchos::Details::Lapack128 lapack;
 
 2191    return lapack.LASCL (TYPE, kl, ku, cfrom, cto, m, n, A, lda, info);
 
 2198#ifdef HAVE_TEUCHOS_LONG_DOUBLE 
 2203  GESV(
const int& n, 
const int& nrhs, 
long double* A, 
const int& lda, 
int* IPIV, 
long double* B, 
const int& ldb, 
int* info)
 const 
 2205    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GESV not implemented for long double scalar type!");
 
 2208  GTTRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const long double* dl, 
const long double* d, 
const long double* du, 
const long double* du2, 
const int* IPIV, 
long double* B, 
const int& ldb, 
int* info)
 const 
 2210    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GTTRS not implemented for long double scalar type!");
 
 2213  GTTRF(
const int& n, 
long double* dl, 
long double* d, 
long double* du, 
long double* du2, 
int* IPIV, 
int* info)
 const 
 2215    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GTTRF not implemented for long double scalar type!");
 
 2218  SYGV(
const int& itype, 
const char& JOBZ, 
const char& UPLO, 
const int& n, 
long double* A, 
const int& lda, 
long double* B, 
const int& ldb, 
long double* W, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2220    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GESV not implemented for long double scalar type!");
 
 2223  GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, 
long double* A, 
const int& lda, 
long double* WR, 
long double* WI, 
long double* VL, 
const int& ldvl, 
long double* VR, 
const int& ldvr, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2225    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GEEV not implemented for long double scalar type!");
 
 2228  GEEV(
const char& JOBVL, 
const char& JOBVR, 
const int& n, 
long double* A, 
const int& lda, 
long double* WR, 
long double* WI, 
long double* VL, 
const int& ldvl, 
long double* VR, 
const int& ldvr, 
long double* WORK, 
const int& lwork, 
long double* , 
int* info)
 const 
 2230    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GEEV not implemented for long double scalar type!");
 
 2233  GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, 
long double* A, 
const int& lda, 
long double* B, 
const int& ldb, 
long double* ALPHAR, 
long double* ALPHAI, 
long double* BETA, 
long double* VL, 
const int& ldvl, 
long double* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
long double* lscale, 
long double* rscale, 
long double* abnrm, 
long double* bbnrm, 
long double* RCONDE, 
long double* RCONDV, 
long double* WORK, 
const int& lwork, 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 2235    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GGEVX not implemented for long double scalar type!");
 
 2238  GGEVX(
const char& BALANC, 
const char& JOBVL, 
const char& JOBVR, 
const char& SENSE, 
const int& n, 
long double* A, 
const int& lda, 
long double* B, 
const int& ldb, 
long double* ALPHAR, 
long double* ALPHAI, 
long double* BETA, 
long double* VL, 
const int& ldvl, 
long double* VR, 
const int& ldvr, 
int* ilo, 
int* ihi, 
long double* lscale, 
long double* rscale, 
long double* abnrm, 
long double* bbnrm, 
long double* RCONDE, 
long double* RCONDV, 
long double* WORK, 
const int& lwork, 
long double* , 
int* IWORK, 
int* BWORK, 
int* info)
 const 
 2240    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: GGEVX not implemented for long double scalar type!");
 
 2243  PORFS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const long double* A, 
const int& lda, 
const long double* AF, 
const int& ldaf, 
const long double* B, 
const int& ldb, 
long double* X, 
const int& ldx, 
long double* FERR, 
long double* BERR, 
long double* WORK, 
int* IWORK, 
int* info)
 const 
 2245    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: PORFS not implemented for long double scalar type!");
 
 2248  PTEQR(
const char& COMPZ, 
const int& n, 
long double* D, 
long double* E, 
long double* Z, 
const int& ldz, 
long double* WORK, 
int* info)
 const 
 2250    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: PTEQR not implemented for long double scalar type!");
 
 2253  POTRF(
const char& UPLO, 
const int& n, 
long double* A, 
const int& lda, 
int* info)
 const 
 2255    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: POTRF not implemented for long double scalar type!");
 
 2258  POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const long double* A, 
const int& lda, 
long double* B, 
const int& ldb, 
int* info)
 const 
 2260    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: POTRS not implemented for long double scalar type!");
 
 2263  POEQU(
const int& n, 
const long double* A, 
const int& lda, 
long double* S, 
long double* scond, 
long double* amax, 
int* info)
 const  
 2265    TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error, 
"ERROR in Teuchos::LAPACK: POEQU not implemented for long double scalar type!");
 
 2268  GEQRF(
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
long double* TAU, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2270    Teuchos::Details::LapackLongDouble lapack;
 
 2271    lapack.GEQRF (m, n, A, lda, TAU, WORK, lwork, info);
 
 2275  GEQR2(
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
long double* TAU, 
long double* WORK, 
int* 
const info)
 const 
 2277    Teuchos::Details::LapackLongDouble lapack;
 
 2278    lapack.GEQR2 (m, n, A, lda, TAU, WORK, info);
 
 2282  GETRF(
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 2284    Teuchos::Details::LapackLongDouble lapack;
 
 2285    lapack.GETRF (m, n, A, lda, IPIV, info);
 
 2289  GETRS(
const char& 
TRANS, 
const int& n, 
const int& nrhs, 
const long double* A, 
const int& lda, 
const int* IPIV, 
long double* B, 
const int& ldb, 
int* info)
 const 
 2291    Teuchos::Details::LapackLongDouble lapack;
 
 2292    lapack.GETRS (
TRANS, n, nrhs, A, lda, IPIV, B, ldb, info);
 
 2296  GETRI (
const int& n, 
long double* A, 
const int& lda, 
const int* IPIV, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2298    Teuchos::Details::LapackLongDouble lapack;
 
 2299    lapack.GETRI (n, A, lda, 
const_cast<int*
> (IPIV), WORK, lwork, info);
 
 2303  LASWP (
const int& N, 
long double* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX)
 const 
 2305    Teuchos::Details::LapackLongDouble lapack;
 
 2306    lapack.LASWP (N, A, LDA, K1, K2, IPIV, INCX);
 
 2310  ORM2R(
const char& SIDE, 
const char& 
TRANS, 
const int& m, 
const int& n, 
const int& k, 
const long double* A, 
const int& lda, 
const long double* TAU, 
long double* C, 
const int& ldc, 
long double* WORK, 
int* 
const info)
 const 
 2312    Teuchos::Details::LapackLongDouble lapack;
 
 2313    lapack.ORM2R (SIDE, 
TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, info);
 
 2317  ORGQR(
const int& m, 
const int& n, 
const int& k, 
long double* A, 
const int& lda, 
const long double* TAU, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2319    Teuchos::Details::LapackLongDouble lapack;
 
 2320    lapack.ORGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
 
 2324  UNGQR(
const int& m, 
const int& n, 
const int& k, 
long double* A, 
const int& lda, 
const long double* TAU, 
long double* WORK, 
const int& lwork, 
int* info)
 const 
 2326    Teuchos::Details::LapackLongDouble lapack;
 
 2327    lapack.UNGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
 
 2331  LARFG( 
const int& n, 
long double* alpha, 
long double* x, 
const int& incx, 
long double* tau )
 const 
 2333    Teuchos::Details::LapackLongDouble lapack;
 
 2334    lapack.LARFG (n, alpha, x, incx, tau);
 
 2338  LAPY2 (
const long double x, 
const long double y)
 const 
 2340    Teuchos::Details::LapackLongDouble lapack;
 
 2341    return lapack.LAPY2 (x, y);
 
 2345  GBTRF (
const int& m, 
const int& n, 
const int& kl, 
const int& ku,
 
 2346         long double* A, 
const int& lda, 
int* IPIV, 
int* info)
 const 
 2348    Teuchos::Details::LapackLongDouble lapack;
 
 2349    return lapack.GBTRF (m, n, kl, ku, A, lda, IPIV, info);
 
 2353  GBTRS (
const char& 
TRANS, 
const int& n, 
const int& kl, 
const int& ku,
 
 2354         const int& nrhs, 
const long double* A, 
const int& lda, 
const int* IPIV,
 
 2355         long double* B, 
const int& ldb, 
int* info)
 const 
 2357    Teuchos::Details::LapackLongDouble lapack;
 
 2358    return lapack.GBTRS (
TRANS, n, kl, ku, nrhs, A, lda, IPIV, B, ldb, info);
 
 2362  LASCL (
const char& TYPE, 
const int& kl, 
const int& ku, 
const long double cfrom,
 
 2363         const long double cto, 
const int& m, 
const int& n, 
long double* A,
 
 2364         const int& lda, 
int* info)
 const 
 2366    Teuchos::Details::LapackLongDouble lapack;
 
 2367    return lapack.LASCL (TYPE, kl, ku, cfrom, cto, m, n, A, lda, info);
 
Teuchos header file which uses auto-configuration information to include necessary C++ headers.
 
Declaration and definition of Teuchos::Details::Lapack128, a partial implementation of Teuchos::LAPAC...
 
Declaration and definition of Teuchos::Details::LapackLongDouble, a partial implementation of Teuchos...
 
Templated interface class to LAPACK routines.
 
The Templated LAPACK wrappers.
 
Defines basic traits for the scalar field type.
 
Standard test and throw macros.
 
void GEQR2(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, OrdinalType *const info) const
BLAS 2 version of GEQRF, with known workspace size.
 
void LARFG(const OrdinalType &n, ScalarType *alpha, ScalarType *x, const OrdinalType &incx, ScalarType *tau) const
Generates an elementary reflector of order n that zeros out the last n-1 components of the input vect...
 
void GEEV(const char &JOBVL, const char &JOBVR, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *WR, MagnitudeType *WI, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes for an n by n real nonsymmetric matrix A, the eigenvalues and, optionally,...
 
void TGSEN(const OrdinalType &ijob, const OrdinalType &wantq, const OrdinalType &wantz, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType *Q, const OrdinalType &ldq, ScalarType *Z, const OrdinalType &ldz, OrdinalType *M, MagnitudeType *PL, MagnitudeType *PR, MagnitudeType *DIF, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, const OrdinalType &liwork, OrdinalType *info) const
 
void TREXC(const char &COMPQ, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, OrdinalType *ifst, OrdinalType *ilst, ScalarType *WORK, OrdinalType *info) const
 
void SYGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix pencil {A,...
 
void GEBAL(const char &JOBZ, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *scale, OrdinalType *info) const
Balances a general matrix A, through similarity transformations to make the rows and columns as close...
 
void GBRFS(const char &TRANS, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a banded system of linear equations and provides error bounds and b...
 
ScalarTraits< ScalarType >::magnitudeType LANGB(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, MagnitudeType *WORK) const
Returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of lar...
 
void ORMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
 
void TRTRS(const char &UPLO, const char &TRANS, const char &DIAG, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a triangular linear system of the form A*X=B or A**T*X=B, where A is a triangular matrix.
 
void HEGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a generalized Hermitian-definite n by n...
 
void STEQR(const char &COMPZ, const OrdinalType &n, MagnitudeType *D, MagnitudeType *E, ScalarType *Z, const OrdinalType &ldz, MagnitudeType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal n by n matrix A usi...
 
void GGEV(const char &JOBVL, const char &JOBVR, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
 
void ORMHR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Overwrites the general real m by n matrix C with the product of C and Q, which is a product of ihi-il...
 
void UNGQR(const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Compute explicit QR factor from QR factorization (GEQRF) (complex case).
 
void LATRS(const char &UPLO, const char &TRANS, const char &DIAG, const char &NORMIN, const OrdinalType &N, const ScalarType *A, const OrdinalType &LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
 
ScalarType LAMCH(const char &CMACH) const
Determines machine parameters for floating point characteristics.
 
void ORGHR(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Generates a real orthogonal matrix Q which is the product of ihi-ilo elementary reflectors of order n...
 
void PTTRS(const OrdinalType &n, const OrdinalType &nrhs, const MagnitudeType *d, const ScalarType *e, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a tridiagonal system A*X=B using the \L*D*L' factorization of A computed by PTTRF.
 
void GTTRF(const OrdinalType &n, ScalarType *dl, ScalarType *d, ScalarType *du, ScalarType *du2, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a n by n tridiagonal matrix A using partial pivoting with row interch...
 
void GESVX(const char &FACT, const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, OrdinalType *IPIV, char *EQUED, ScalarType *R, ScalarType *C, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the LU factorization to compute the solution to a real system of linear equations A*X=B,...
 
void LASWP(const OrdinalType &N, ScalarType *A, const OrdinalType &LDA, const OrdinalType &K1, const OrdinalType &K2, const OrdinalType *IPIV, const OrdinalType &INCX) const
Apply a series of row interchanges to the matrix A.
 
void PTEQR(const char &COMPZ, const OrdinalType &n, MagnitudeType *D, MagnitudeType *E, ScalarType *Z, const OrdinalType &ldz, MagnitudeType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric positive-definite tridiagonal n...
 
void GETRI(const OrdinalType &n, ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the inverse of a matrix A using the LU factorization computed by GETRF.
 
void GGLSE(const OrdinalType &m, const OrdinalType &n, const OrdinalType &p, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *C, ScalarType *D, ScalarType *X, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Solves the linear equality-constrained least squares (LSE) problem where A is an m by n matrix,...
 
void GBTRF(const OrdinalType &m, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general banded m by n matrix A using partial pivoting with row inte...
 
void PORFS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
 
void GELSS(const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *S, const MagnitudeType rcond, OrdinalType *rank, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Use the SVD to solve a possibly rank-deficient linear least-squares problem.
 
void GEHRD(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real general matrix A to upper Hessenberg form by orthogonal similarity transformations.
 
void POSVX(const char &FACT, const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, char *EQUED, ScalarType *S, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the Cholesky factorization to compute the solution to a real system of linear equations A*X=B,...
 
void ORGQR(const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Compute explicit Q factor from QR factorization (GEQRF) (real case).
 
void GEES(const char &JOBVS, const char &SORT, OrdinalType &(*ptr2func)(ScalarType *, ScalarType *), const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *sdim, ScalarType *WR, ScalarType *WI, ScalarType *VS, const OrdinalType &ldvs, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *BWORK, OrdinalType *info) const
 
void UNM2R(const char &SIDE, const char &TRANS, const OrdinalType &M, const OrdinalType &N, const OrdinalType &K, const ScalarType *A, const OrdinalType &LDA, const ScalarType *TAU, ScalarType *C, const OrdinalType &LDC, ScalarType *WORK, OrdinalType *const INFO) const
BLAS 2 version of UNMQR; known workspace size.
 
void GBEQU(const OrdinalType &m, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, MagnitudeType *R, MagnitudeType *C, MagnitudeType *rowcond, MagnitudeType *colcond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n banded matrix A and reduce its con...
 
void GESVD(const char &JOBU, const char &JOBVT, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *S, ScalarType *U, const OrdinalType &ldu, ScalarType *V, const OrdinalType &ldv, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes the singular values (and optionally, vectors) of a real matrix A.
 
void POCON(const char &UPLO, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number (1-norm) of a real symmetric positive definite matri...
 
void GEEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *WR, ScalarType *WI, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *SCALE, MagnitudeType *abnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *info) const
 
void HSEQR(const char &JOB, const char &COMPZ, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *H, const OrdinalType &ldh, ScalarType *WR, ScalarType *WI, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the eigenvalues of a real upper Hessenberg matrix H and, optionally, the matrices T and Z fr...
 
void LARTG(const ScalarType &f, const ScalarType &g, MagnitudeType *c, ScalarType *s, ScalarType *r) const
Gnerates a plane rotation that zeros out the second component of the input vector.
 
void GELS(const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Solves an over/underdetermined real m by n linear system A using QR or LQ factorization of A.
 
void GBCON(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general banded real matrix A,...
 
void HEEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a Hermitian n by n matrix A.
 
void POTRS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B, where A is a symmetric positive definite matrix factored b...
 
void GGEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *lscale, MagnitudeType *rscale, MagnitudeType *abnrm, MagnitudeType *bbnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *BWORK, OrdinalType *info) const
 
ScalarType LARND(const OrdinalType &idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
 
ScalarType LAPY2(const ScalarType &x, const ScalarType &y) const
Computes x^2 + y^2 safely, to avoid overflow.
 
void ORM2R(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, OrdinalType *const info) const
BLAS 2 version of ORMQR; known workspace size.
 
void POEQU(const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, MagnitudeType *S, MagnitudeType *scond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate a symmetric positive definite matrix A and r...
 
void GEEQU(const OrdinalType &m, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, ScalarType *R, ScalarType *C, ScalarType *rowcond, ScalarType *colcond, ScalarType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n matrix A and reduce its condition ...
 
void UNMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Apply Householder reflectors (complex case).
 
void POTRI(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of a real symmetric positive definite matrix A using the Cholesky factorization ...
 
void PTTRF(const OrdinalType &n, MagnitudeType *d, ScalarType *e, OrdinalType *info) const
Computes the L*D*L' factorization of a Hermitian/symmetric positive definite tridiagonal matrix A.
 
void TRSEN(const char &JOB, const char &COMPQ, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, MagnitudeType *WR, MagnitudeType *WI, OrdinalType *M, ScalarType *S, MagnitudeType *SEP, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, const OrdinalType &liwork, OrdinalType *info) const
 
void GESV(const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is factored through GETRF a...
 
void GBTRS(const char &TRANS, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B with a general banded n by n matrix A using the L...
 
void LARNV(const OrdinalType &idist, OrdinalType *seed, const OrdinalType &n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
 
void TRTRI(const char &UPLO, const char &DIAG, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
 
void GGES(const char &JOBVL, const char &JOBVR, const char &SORT, OrdinalType &(*ptr2func)(ScalarType *, ScalarType *, ScalarType *), const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *sdim, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *BWORK, OrdinalType *info) const
 
void POSV(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is a symmetric positive def...
 
OrdinalType ILAENV(const OrdinalType &ispec, const std::string &NAME, const std::string &OPTS, const OrdinalType &N1=-1, const OrdinalType &N2=-1, const OrdinalType &N3=-1, const OrdinalType &N4=-1) const
Chooses problem-dependent parameters for the local environment.
 
void GETRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general m by n matrix A using partial pivoting with row interchange...
 
void LASCL(const char &TYPE, const OrdinalType &kl, const OrdinalType &ku, const MagnitudeType cfrom, const MagnitudeType cto, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Multiplies the m by n matrix A by the real scalar cto/cfrom.
 
void GECON(const char &NORM, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general real matrix A, in either the 1-norm or ...
 
void GERFS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations and provides error bounds and backward...
 
void GTTRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *dl, const ScalarType *d, const ScalarType *du, const ScalarType *du2, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B or A^H*X=B with a tridiagonal matrix A using the ...
 
void SYTRD(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *D, ScalarType *E, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real symmetric matrix A to tridiagonal form by orthogonal similarity transformations.
 
void GEBAK(const char &JOBZ, const char &SIDE, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const MagnitudeType *scale, const OrdinalType &m, ScalarType *V, const OrdinalType &ldv, OrdinalType *info) const
Forms the left or right eigenvectors of a general matrix that has been balanced by GEBAL by backward ...
 
void GEQP3(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *jpvt, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS.
 
void TGEVC(const char &SIDE, const char &HOWMNY, const OrdinalType *SELECT, const OrdinalType &n, const ScalarType *S, const OrdinalType &lds, const ScalarType *P, const OrdinalType &ldp, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info) const
 
void SYEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A.
 
void GEQRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes a QR factorization of a general m by n matrix A.
 
void POTRF(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes Cholesky factorization of a real symmetric positive definite matrix A.
 
void GETRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B with a general n by n matrix A using the LU facto...
 
void TREVC(const char &SIDE, const char &HOWMNY, OrdinalType *select, const OrdinalType &n, const ScalarType *T, const OrdinalType &ldt, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *m, ScalarType *WORK, OrdinalType *info) const
 
void SPEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *AP, ScalarType *W, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A in packed stora...
 
Smart reference counting pointer class for automatic garbage collection.
 
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
 
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...