10#ifndef _TEUCHOS_LAPACK_HPP_ 
   11#define _TEUCHOS_LAPACK_HPP_ 
   57  struct UndefinedLAPACKRoutine
 
   60    static inline T notDefined() { 
return T::LAPACK_routine_not_defined_for_this_type(); }
 
   63  template<
typename OrdinalType, 
typename ScalarType>
 
  111    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;
 
  114    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;
 
  121    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;
 
  156    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;
 
  159    void GELSS(
const OrdinalType& 
m, 
const OrdinalType& n, 
const OrdinalType& 
nrhs, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
ScalarType* 
B, 
const OrdinalType& 
ldb, 
ScalarType* 
S, 
const ScalarType& 
rcond, 
OrdinalType* rank, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, 
OrdinalType* info) 
const;
 
  162    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;
 
  189    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;
 
  195    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;
 
  204    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;
 
  210    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;
 
  222    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;
 
  225    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;
 
  228    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;
 
  232    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;
 
  264    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;
 
  274    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;
 
  286    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;
 
  291    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;
 
  296    void GEES(
const char& 
JOBVS, 
const char& 
SORT, 
OrdinalType& (*
ptr2func)(
ScalarType*), 
const OrdinalType& n, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
OrdinalType* 
sdim, 
ScalarType* 
W, 
ScalarType* 
VS, 
const OrdinalType& 
ldvs, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, MagnitudeType* 
RWORK, 
OrdinalType* 
BWORK, 
OrdinalType* info) 
const;
 
  301    void GEES(
const char& 
JOBVS, 
const OrdinalType& n, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
OrdinalType* 
sdim, MagnitudeType* 
WR, MagnitudeType* 
WI, 
ScalarType* 
VS, 
const OrdinalType& 
ldvs, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, MagnitudeType* 
RWORK, 
OrdinalType* 
BWORK, 
OrdinalType* info) 
const;
 
  308    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;
 
  314    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;
 
  320    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;
 
  325    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;
 
  331  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;
 
  336  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;
 
  341    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;
 
  349    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;
 
  365    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;
 
  372    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;
 
  382    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;
 
  388    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;
 
  419    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;
 
  427    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;
 
  432    void TREVC(
const char& 
SIDE, 
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, MagnitudeType* 
RWORK, 
OrdinalType* info) 
const;
 
  442    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;
 
 
  507  template<
typename OrdinalType, 
typename ScalarType>
 
  510    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  513  template<
typename OrdinalType, 
typename ScalarType>
 
  514  void LAPACK<OrdinalType, ScalarType>::PTTRS(
const OrdinalType& n, 
const OrdinalType& nrhs, 
const MagnitudeType* d, 
const ScalarType* e, ScalarType* B, 
const OrdinalType& ldb, OrdinalType* info)
 const 
  516    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  519  template<
typename OrdinalType, 
typename ScalarType>
 
  522    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  525  template<
typename OrdinalType, 
typename ScalarType>
 
  526  void LAPACK<OrdinalType, ScalarType>::POTRS(
const char& UPLO, 
const OrdinalType& n, 
const OrdinalType& nrhs, 
const ScalarType* A, 
const OrdinalType& lda, ScalarType* B, 
const OrdinalType& ldb, OrdinalType* info)
 const 
  528    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  531  template<
typename OrdinalType, 
typename ScalarType>
 
  534    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  537  template<
typename OrdinalType, 
typename ScalarType>
 
  538  void LAPACK<OrdinalType, ScalarType>::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 
  540    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  543  template<
typename OrdinalType, 
typename ScalarType>
 
  544  void LAPACK<OrdinalType, ScalarType>::POSV(
const char& UPLO, 
const OrdinalType& n, 
const OrdinalType& nrhs, ScalarType* A, 
const OrdinalType& lda, ScalarType* B, 
const OrdinalType& ldb, OrdinalType* info)
 const 
  546    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  549  template<
typename OrdinalType, 
typename ScalarType>
 
  550  void LAPACK<OrdinalType, ScalarType>::POEQU(
const OrdinalType& n, 
const ScalarType* A, 
const OrdinalType& lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
 const 
  556    } 
else if (lda < TEUCHOS_MAX(1, n)) {
 
  577    MagnitudeType smin = S[0];
 
  579    for (OrdinalType i=0; i<n; ++i) {
 
  581      smin = TEUCHOS_MIN( smin, S[i] );
 
  582      *amax = TEUCHOS_MAX( *amax, S[i] );
 
  587      for (OrdinalType i=0; i<n; ++i) {
 
  593      for (OrdinalType i=0; i<n; ++i) {
 
  601  template<
typename OrdinalType, 
typename ScalarType>
 
  602  void LAPACK<OrdinalType, ScalarType>::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 
  604    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  607  template<
typename OrdinalType, 
typename ScalarType>
 
  608  void LAPACK<OrdinalType, ScalarType>::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 
  610    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  613  template<
typename OrdinalType, 
typename ScalarType>
 
  614  void LAPACK<OrdinalType,ScalarType>::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 
  616    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  619  template<
typename OrdinalType, 
typename ScalarType>
 
  620  void LAPACK<OrdinalType, ScalarType>::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 
  622    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
  625  template<
typename OrdinalType, 
typename ScalarType>
 
  626  void LAPACK<OrdinalType,ScalarType>::GELSS(
const OrdinalType& 
m, 
const OrdinalType& n, 
const OrdinalType& 
nrhs, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
ScalarType* 
B, 
const OrdinalType& 
ldb, 
ScalarType* 
S, 
const ScalarType& 
rcond, 
OrdinalType* rank, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, 
OrdinalType* info)
 const 
  628    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
  631  template<
typename OrdinalType, 
typename ScalarType>
 
  632  void LAPACK<OrdinalType,ScalarType>::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 
  634    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  637  template<
typename OrdinalType, 
typename ScalarType>
 
  638  void LAPACK<OrdinalType,ScalarType>::GEQRF( 
const OrdinalType& m, 
const OrdinalType& n, ScalarType* A, 
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK, 
const OrdinalType& lwork, OrdinalType* info)
 const 
  640    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  643  template<
typename OrdinalType, 
typename ScalarType>
 
  644  void LAPACK<OrdinalType,ScalarType>::GEQR2 (
const OrdinalType& m, 
const OrdinalType& n, ScalarType* A, 
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK, OrdinalType* 
const info)
 const 
  646    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  649  template<
typename OrdinalType, 
typename ScalarType>
 
  652    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  655  template<
typename OrdinalType, 
typename ScalarType>
 
  656  void LAPACK<OrdinalType,ScalarType>::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 
  658    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  661  template<
typename OrdinalType, 
typename ScalarType>
 
  662  void LAPACK<OrdinalType,ScalarType>::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 
  678    MagnitudeType cfromc = cfrom;
 
  679    MagnitudeType ctoc = cto;
 
  680    MagnitudeType cfrom1;
 
  685      cfrom1 = cfromc*smlnum;
 
  686      if (cfrom1 == cfromc) {
 
  692        cto1 = ctoc / bignum;
 
  698        } 
else if (ScalarTraits<ScalarType>::magnitude(cfrom1) > ScalarTraits<ScalarType>::magnitude(ctoc) && ctoc != mZero) {
 
  702        } 
else if (ScalarTraits<ScalarType>::magnitude(cto1) > ScalarTraits<ScalarType>::magnitude(cfromc)) {
 
  712      for (j=0; j<n; j++) {
 
  714        for (i=0; i<m; i++) { *
ptr = mul * (*ptr); 
ptr++; }
 
  720  template<
typename OrdinalType, 
typename ScalarType>
 
  721  void LAPACK<OrdinalType,ScalarType>::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 
  723    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  726  template<
typename OrdinalType, 
typename ScalarType>
 
  727  void LAPACK<OrdinalType, ScalarType>::LASWP (
const OrdinalType& N, ScalarType* A, 
const OrdinalType& LDA, 
const OrdinalType& K1, 
const OrdinalType& K2, 
const OrdinalType* IPIV, 
const OrdinalType& INCX)
 const 
  729    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  732  template<
typename OrdinalType, 
typename ScalarType>
 
  733  void LAPACK<OrdinalType,ScalarType>::GBTRF(
const OrdinalType& m, 
const OrdinalType& n, 
const OrdinalType& kl, 
const OrdinalType& ku, ScalarType* A, 
const OrdinalType& lda, OrdinalType* IPIV, OrdinalType* info)
 const 
  735    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  738  template<
typename OrdinalType, 
typename ScalarType>
 
  739  void LAPACK<OrdinalType,ScalarType>::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 
  741    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  744  template<
typename OrdinalType, 
typename ScalarType>
 
  747    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  750  template<
typename OrdinalType, 
typename ScalarType>
 
  751  void LAPACK<OrdinalType,ScalarType>::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 
  753    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  756  template<
typename OrdinalType, 
typename ScalarType>
 
  757  void LAPACK<OrdinalType,ScalarType>::GETRI(
const OrdinalType& n, ScalarType* A, 
const OrdinalType& lda, 
const OrdinalType* IPIV, ScalarType* WORK, 
const OrdinalType& lwork, OrdinalType* info)
 const 
  759    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  762  template<
typename OrdinalType, 
typename ScalarType>
 
  763  void LAPACK<OrdinalType,ScalarType>::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 
  765    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  768  template<
typename OrdinalType, 
typename ScalarType>
 
  769  void LAPACK<OrdinalType,ScalarType>::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 
  771    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  774  template<
typename OrdinalType, 
typename ScalarType>
 
  775  void LAPACK<OrdinalType,ScalarType>::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 
  777    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  780  template<
typename OrdinalType, 
typename ScalarType>
 
  781  typename ScalarTraits<ScalarType>::magnitudeType 
LAPACK<OrdinalType,ScalarType>::LANGB(
const char& NORM, 
const OrdinalType& n, 
const OrdinalType& kl, 
const OrdinalType& ku, 
const ScalarType* A, 
const OrdinalType& lda, MagnitudeType* WORK)
 const 
  783    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  786  template<
typename OrdinalType, 
typename ScalarType>
 
  787  void LAPACK<OrdinalType,ScalarType>::GESV(
const OrdinalType& n, 
const OrdinalType& nrhs, ScalarType* A, 
const OrdinalType& lda, OrdinalType* IPIV, ScalarType* B, 
const OrdinalType& ldb, OrdinalType* info)
 const 
  789    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  792  template<
typename OrdinalType, 
typename ScalarType>
 
  793  void LAPACK<OrdinalType,ScalarType>::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 
  802    } 
else if (lda < TEUCHOS_MAX(1, m)) {
 
  815    if (m == 0 || n == 0) {
 
  827    for (OrdinalType i=0; i<m; i++) {
 
  832    for (OrdinalType j=0; j<n; j++) {
 
  833      for (OrdinalType i=0; i<m; i++) {
 
  834        R[i] = TEUCHOS_MAX( R[i], ScalarTraits<ScalarType>::magnitude( A[j*lda + i] ) );
 
  839    MagnitudeType rcmin = bignum;
 
  840    MagnitudeType rcmax = mZero;
 
  841    for (OrdinalType i=0; i<m; i++) {
 
  842      rcmax = TEUCHOS_MAX( rcmax, R[i] );
 
  843      rcmin = TEUCHOS_MIN( rcmin, R[i] );
 
  847    if (rcmin == mZero) {
 
  849      for (OrdinalType i=0; i<m; i++) {
 
  855      for (OrdinalType i=0; i<m; i++) {
 
  856        R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
 
  859      *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
 
  863    for (OrdinalType j=0; j<n; j++) {
 
  868    for (OrdinalType j=0; j<n; j++) {
 
  869      for (OrdinalType i=0; i<m; i++) {
 
  870        C[j] = TEUCHOS_MAX( C[j], R[i]*ScalarTraits<ScalarType>::magnitude( A[j*lda + i] ) );
 
  877    for (OrdinalType j=0; j<n; j++) {
 
  878      rcmax = TEUCHOS_MAX( rcmax, C[j] );
 
  879      rcmin = TEUCHOS_MIN( rcmin, C[j] );
 
  882    if (rcmin == mZero) {
 
  884      for (OrdinalType j=0; j<n; j++) {
 
  890      for (OrdinalType j=0; j<n; j++) {
 
  891        C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
 
  894      *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
 
  898  template<
typename OrdinalType, 
typename ScalarType>
 
  899  void LAPACK<OrdinalType,ScalarType>::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 
  901    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
  904  template<
typename OrdinalType, 
typename ScalarType>
 
  905  void LAPACK<OrdinalType,ScalarType>::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 
  918    } 
else if (lda < kl+ku+1) {
 
  931    if (m == 0 || n == 0) {
 
  943    for (OrdinalType i=0; i<m; i++) {
 
  948    for (OrdinalType j=0; j<n; j++) {
 
  949      for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
 
  950        R[i] = TEUCHOS_MAX( R[i], ScalarTraits<ScalarType>::magnitude( A[j*lda + ku+i-j] ) );
 
  955    MagnitudeType rcmin = bignum;
 
  956    MagnitudeType rcmax = mZero;
 
  957    for (OrdinalType i=0; i<m; i++) {
 
  958      rcmax = TEUCHOS_MAX( rcmax, R[i] );
 
  959      rcmin = TEUCHOS_MIN( rcmin, R[i] );
 
  963    if (rcmin == mZero) {
 
  965      for (OrdinalType i=0; i<m; i++) {
 
  971      for (OrdinalType i=0; i<m; i++) {
 
  972        R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
 
  975      *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
 
  979    for (OrdinalType j=0; j<n; j++) {
 
  984    for (OrdinalType j=0; j<n; j++) {
 
  985      for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
 
  986        C[j] = TEUCHOS_MAX( C[j], R[i]*ScalarTraits<ScalarType>::magnitude( A[j*lda + ku+i-j] ) );
 
  993    for (OrdinalType j=0; j<n; j++) {
 
  994      rcmax = TEUCHOS_MAX( rcmax, C[j] );
 
  995      rcmin = TEUCHOS_MIN( rcmin, C[j] );
 
  998    if (rcmin == mZero) {
 
 1000      for (OrdinalType j=0; j<n; j++) {
 
 1006      for (OrdinalType j=0; j<n; j++) {
 
 1007        C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
 
 1010      *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
 
 1014  template<
typename OrdinalType, 
typename ScalarType>
 
 1015  void LAPACK<OrdinalType,ScalarType>::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 
 1017    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1020  template<
typename OrdinalType, 
typename ScalarType>
 
 1021  void LAPACK<OrdinalType,ScalarType>::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 
 1023    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1026  template<
typename OrdinalType, 
typename ScalarType>
 
 1027  void LAPACK<OrdinalType,ScalarType>::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 
 1029    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1032  template<
typename OrdinalType, 
typename ScalarType>
 
 1033  void LAPACK<OrdinalType,ScalarType>::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 
 1035    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1038  template<
typename OrdinalType, 
typename ScalarType>
 
 1039  void LAPACK<OrdinalType,ScalarType>::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 
 1041    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1044  template<
typename OrdinalType, 
typename ScalarType>
 
 1047    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1050  template<
typename OrdinalType, 
typename ScalarType>
 
 1051  void LAPACK<OrdinalType,ScalarType>::SPEV(
const char& JOBZ, 
const char& UPLO, 
const OrdinalType& n, ScalarType* AP, ScalarType* W, ScalarType* Z, 
const OrdinalType& ldz, ScalarType* WORK, OrdinalType* info)
 const 
 1053    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1056  template<
typename OrdinalType, 
typename ScalarType>
 
 1057  void LAPACK<OrdinalType,ScalarType>::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 
 1059    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1062  template<
typename OrdinalType, 
typename ScalarType>
 
 1063  void LAPACK<OrdinalType,ScalarType>::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 
 1065    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1068  template<
typename OrdinalType, 
typename ScalarType>
 
 1069  void LAPACK<OrdinalType,ScalarType>::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 
 1071    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1074  template<
typename OrdinalType, 
typename ScalarType>
 
 1075  void LAPACK<OrdinalType,ScalarType>::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 
 1077    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1080  template<
typename OrdinalType, 
typename ScalarType>
 
 1081  void LAPACK<OrdinalType,ScalarType>::STEQR(
const char& COMPZ, 
const OrdinalType& n, MagnitudeType* D, MagnitudeType* E, ScalarType* Z, 
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
 const 
 1083    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1086  template<
typename OrdinalType, 
typename ScalarType>
 
 1087  void LAPACK<OrdinalType,ScalarType>::PTEQR(
const char& COMPZ, 
const OrdinalType& n, MagnitudeType* D, MagnitudeType* E, ScalarType* Z, 
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
 const 
 1089    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1092  template<
typename OrdinalType, 
typename ScalarType>
 
 1093  void LAPACK<OrdinalType, ScalarType>::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 
 1095    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1098  template<
typename OrdinalType, 
typename ScalarType>
 
 1099  void LAPACK<OrdinalType, ScalarType>::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 
 1101    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1104  template<
typename OrdinalType, 
typename ScalarType>
 
 1105  void LAPACK<OrdinalType, ScalarType>::GEES(
const char& 
JOBVS, 
const char& 
SORT, 
OrdinalType& (*
ptr2func)(
ScalarType*), 
const OrdinalType& n, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
OrdinalType* 
sdim, 
ScalarType* 
W, 
ScalarType* 
VS, 
const OrdinalType& 
ldvs, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, MagnitudeType *
RWORK, 
OrdinalType* 
BWORK, 
OrdinalType* info)
 const 
 1107    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1110  template<
typename OrdinalType, 
typename ScalarType>
 
 1111  void LAPACK<OrdinalType, ScalarType>::GEES(
const char& 
JOBVS, 
const OrdinalType& n, 
ScalarType* 
A, 
const OrdinalType& 
lda, 
OrdinalType* 
sdim, MagnitudeType* 
WR, MagnitudeType* 
WI, 
ScalarType* 
VS, 
const OrdinalType& 
ldvs, 
ScalarType* 
WORK, 
const OrdinalType& 
lwork, MagnitudeType *
RWORK, 
OrdinalType* 
BWORK, 
OrdinalType* info)
 const 
 1113    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1116  template<
typename OrdinalType, 
typename ScalarType>
 
 1117  void LAPACK<OrdinalType, ScalarType>::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 
 1119    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1122  template<
typename OrdinalType, 
typename ScalarType>
 
 1123  void LAPACK<OrdinalType, ScalarType>::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 
 1125    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1128  template<
typename OrdinalType, 
typename ScalarType>
 
 1129  void LAPACK<OrdinalType, ScalarType>::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 
 1131    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1134  template<
typename OrdinalType, 
typename ScalarType>
 
 1135  void LAPACK<OrdinalType, ScalarType>::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 
 1137    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1140  template<
typename OrdinalType, 
typename ScalarType>
 
 1141  void LAPACK<OrdinalType, ScalarType>::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 
 1143    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1147  template<
typename OrdinalType, 
typename ScalarType>
 
 1148  void LAPACK<OrdinalType,ScalarType>::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 
 1150    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1154  template<
typename OrdinalType, 
typename ScalarType>
 
 1155  void LAPACK<OrdinalType,ScalarType>::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 
 1157    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1161  template<
typename OrdinalType, 
typename ScalarType>
 
 1162  void LAPACK<OrdinalType, ScalarType>::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 
 1164    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1167  template<
typename OrdinalType, 
typename ScalarType>
 
 1168  void LAPACK<OrdinalType, ScalarType>::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 
 1170    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1173  template<
typename OrdinalType, 
typename ScalarType>
 
 1174  void LAPACK<OrdinalType, ScalarType>::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 
 1176    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1179  template<
typename OrdinalType, 
typename ScalarType>
 
 1180  void LAPACK<OrdinalType, ScalarType>::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 
 1182    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1185  template<
typename OrdinalType, 
typename ScalarType>
 
 1186  void LAPACK<OrdinalType, ScalarType>::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 
 1188    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1191  template<
typename OrdinalType, 
typename ScalarType>
 
 1192  void LAPACK<OrdinalType, ScalarType>::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 
 1194    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1197  template<
typename OrdinalType, 
typename ScalarType>
 
 1198  void LAPACK<OrdinalType, ScalarType>::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 
 1200    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1203  template<
typename OrdinalType, 
typename ScalarType>
 
 1204  void LAPACK<OrdinalType, ScalarType>::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 
 1206    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1209  template<
typename OrdinalType, 
typename ScalarType>
 
 1210  void LAPACK<OrdinalType, ScalarType>::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 
 1212    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1215  template<
typename OrdinalType, 
typename ScalarType>
 
 1216  void LAPACK<OrdinalType, ScalarType>::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 
 1218    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1221  template<
typename OrdinalType, 
typename ScalarType>
 
 1222  void LAPACK<OrdinalType, ScalarType>::TREVC(
const char& 
SIDE, 
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, MagnitudeType* 
RWORK, 
OrdinalType* info)
 const 
 1224    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1227  template<
typename OrdinalType, 
typename ScalarType>
 
 1228  void LAPACK<OrdinalType, ScalarType>::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 
 1230    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1234  template<
typename OrdinalType, 
typename ScalarType>
 
 1235  void LAPACK<OrdinalType, ScalarType>::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 
 1237    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1241  template<
typename OrdinalType, 
typename ScalarType>
 
 1244    return UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1247  template<
typename OrdinalType, 
typename ScalarType>
 
 1248  OrdinalType 
LAPACK<OrdinalType, ScalarType>::ILAENV( 
const OrdinalType& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const OrdinalType& N1, 
const OrdinalType& N2, 
const OrdinalType& N3, 
const OrdinalType& N4 )
 const 
 1250    return UndefinedLAPACKRoutine<OrdinalType>::notDefined();
 
 1253  template<
typename OrdinalType, 
typename ScalarType>
 
 1256    return UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1259  template<
typename OrdinalType, 
typename ScalarType>
 
 1262    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1265  template<
typename OrdinalType, 
typename ScalarType>
 
 1268    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1271  template<
typename OrdinalType, 
typename ScalarType>
 
 1272  void LAPACK<OrdinalType, ScalarType>::GEBAL( 
const char& JOBZ, 
const OrdinalType& n, ScalarType* A, 
const OrdinalType& lda, OrdinalType* ilo, OrdinalType* ihi, MagnitudeType* scale, OrdinalType* info )
 const 
 1274    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1278  template<
typename OrdinalType, 
typename ScalarType>
 
 1279  void LAPACK<OrdinalType, ScalarType>::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 
 1281    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1284  template<
typename OrdinalType, 
typename ScalarType>
 
 1287    return UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 
 1290  template<
typename OrdinalType, 
typename ScalarType>
 
 1293    UndefinedLAPACKRoutine<ScalarType>::notDefined();
 
 1298#ifndef DOXYGEN_SHOULD_SKIP_THIS 
 1303  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, float>
 
 1306    inline LAPACK(
void) {}
 
 1307    inline LAPACK(
const LAPACK<int, float>& ) {}
 
 1308    inline virtual ~LAPACK(
void) {}
 
 1311    void PTTRF(
const int& n, 
float* d, 
float* e, 
int* info) 
const;
 
 1312    void PTTRS(
const int& n, 
const int& nrhs, 
const float* d, 
const float* e, 
float* B, 
const int& ldb, 
int* info) 
const;
 
 1313    void POTRF(
const char& UPLO, 
const int& n, 
float* A, 
const int& lda, 
int*  info) 
const;
 
 1314    void POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const float* A, 
const int& lda, 
float* B, 
const int& ldb, 
int* info) 
const;
 
 1315    void POTRI(
const char& UPLO, 
const int& n, 
float* A, 
const int& lda, 
int* info) 
const;
 
 1316    void POCON(
const char& UPLO, 
const int& n, 
const float* A, 
const int& lda, 
const float& anorm, 
float* rcond, 
float* WORK, 
int* IWORK, 
int* info) 
const;
 
 1317    void POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, 
float* A, 
const int& lda, 
float* B, 
const int& ldb, 
int* info) 
const;
 
 1318    void POEQU(
const int& n, 
const float* A, 
const int& lda, 
float* S, 
float* scond, 
float* amax, 
int* info) 
const;
 
 1319    void 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;
 
 1321    void 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;
 
 1324    void 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;
 
 1325    void 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;
 
 1326    void 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;
 
 1327    void 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;
 
 1328    void GEQRF(
const int& m, 
const int& n, 
float* A, 
const int& lda, 
float* TAU, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1329    void GEQR2(
const int& m, 
const int& n, 
float* A, 
const int& lda, 
float* TAU, 
float* WORK, 
int* 
const info) 
const;
 
 1331    void GETRF(
const int& m, 
const int& n, 
float* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1332    void GETRS(
const char& TRANS, 
const int& n, 
const int& nrhs, 
const float* A, 
const int& lda, 
const int* IPIV, 
float* B, 
const int& ldb, 
int* info) 
const;
 
 1333    void 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;
 
 1335    void 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;
 
 1336    void LASWP (
const int& N, 
float* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1338    void GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
float* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1339    void 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;
 
 1340    void GTTRF(
const int& n, 
float* dl, 
float* d, 
float* du, 
float* du2, 
int* IPIV, 
int* info) 
const;
 
 1341    void 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;
 
 1344    void GETRI(
const int& n, 
float* A, 
const int& lda, 
const int* IPIV, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1345    void 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;
 
 1346    void GECON(
const char& NORM, 
const int& n, 
const float* A, 
const int& lda, 
const float& anorm, 
float* rcond, 
float* WORK, 
int* IWORK, 
int* info) 
const;
 
 1347    void 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;
 
 1348    float LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const float* A, 
const int& lda, 
float* WORK) 
const;
 
 1349    void GESV(
const int& n, 
const int& nrhs, 
float* A, 
const int& lda, 
int* IPIV, 
float* B, 
const int& ldb, 
int* info) 
const;
 
 1350    void 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;
 
 1351    void 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;
 
 1352    void 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;
 
 1353    void 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;
 
 1355    void 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;
 
 1357    void 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;
 
 1358    void GEHRD(
const int& n, 
const int& ilo, 
const int& ihi, 
float* A, 
const int& lda, 
float* TAU, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1359    void 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;
 
 1360    void TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, 
float* A, 
const int& lda, 
int* info) 
const;
 
 1363    void STEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, 
float* Z, 
const int& ldz, 
float* WORK, 
int* info) 
const;
 
 1364    void PTEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, 
float* Z, 
const int& ldz, 
float* WORK, 
int* info) 
const;
 
 1365    void SPEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
float* AP, 
float* W, 
float* Z, 
const int& ldz, 
float* WORK, 
int* info) 
const;
 
 1366    void SYEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
float* A, 
const int& lda, 
float* W, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1367    void 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;
 
 1368    void HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
float* A, 
const int& lda, 
float* W, 
float* WORK, 
const int& lwork, 
float* RWORK, 
int* info) 
const;
 
 1369    void 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* RWORK, 
int* info) 
const;
 
 1372    void 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;
 
 1373    void 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;
 
 1374    void 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* RWORK, 
int* BWORK, 
int* info) 
const;
 
 1376    void 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;
 
 1377    void 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* rwork, 
int* info) 
const;
 
 1379    void 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;
 
 1380    void 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;
 
 1381    void 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* rwork, 
int* IWORK, 
int* BWORK, 
int* info) 
const;
 
 1382    void 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;
 
 1383    void 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;
 
 1384    void 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;
 
 1385    void 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;
 
 1388    void 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* RWORK, 
int* info) 
const;
 
 1391    void 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;
 
 1392    void 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;
 
 1393    void 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;
 
 1394    void 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;
 
 1395    void ORGQR(
const int& m, 
const int& n, 
const int& k, 
float* A, 
const int& lda, 
const float* TAU, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1396    void UNGQR(
const int& m, 
const int& n, 
const int& k, 
float* A, 
const int& lda, 
const float* TAU, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1397    void ORGHR(
const int& n, 
const int& ilo, 
const int& ihi, 
float* A, 
const int& lda, 
const float* TAU, 
float* WORK, 
const int& lwork, 
int* info) 
const;
 
 1398    void 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;
 
 1401    void 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;
 
 1402    void 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* RWORK, 
int* info) 
const;
 
 1404    void 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;
 
 1406    void 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;
 
 1409    void LARTG( 
const float& f, 
const float& g, 
float* c, 
float* s, 
float* r ) 
const;
 
 1410    void LARFG( 
const int& n, 
float* alpha, 
float* x, 
const int& incx, 
float* tau ) 
const;
 
 1414    void GEBAL(
const char& JOBZ, 
const int& n, 
float* A, 
const int& lda, 
int* ilo, 
int* ihi, 
float* scale, 
int* info) 
const;
 
 1416    void 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;
 
 1419    float LARND( 
const int& idist, 
int* seed ) 
const;
 
 1420    void LARNV( 
const int& idist, 
int* seed, 
const int& n, 
float* v ) 
const;
 
 1423    float LAMCH(
const char& CMACH) 
const;
 
 1424    int ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1 = -1, 
const int& N2 = -1, 
const int& N3 = -1, 
const int& N4 = -1 ) 
const;
 
 1427    float LAPY2(
const float& x, 
const float& y) 
const;
 
 1436  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, double>
 
 1439    inline LAPACK(
void) {}
 
 1440    inline LAPACK(
const LAPACK<int, double>& ) {}
 
 1441    inline virtual ~LAPACK(
void) {}
 
 1444    void PTTRF(
const int& n, 
double* d, 
double* e, 
int* info) 
const;
 
 1445    void PTTRS(
const int& n, 
const int& nrhs, 
const double* d, 
const double* e, 
double* B, 
const int& ldb, 
int* info) 
const;
 
 1446    void POTRF(
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
int* info) 
const;
 
 1447    void POTRS(
const char& UPLO, 
const int& n, 
const int& nrhs, 
const double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* info) 
const;
 
 1448    void POTRI(
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
int* info) 
const;
 
 1449    void 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;
 
 1450    void POSV(
const char& UPLO, 
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
double* B, 
const int& ldb, 
int* info) 
const;
 
 1451    void POEQU(
const int& n, 
const double* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info) 
const;
 
 1452    void 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;
 
 1454    void 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;
 
 1457    void 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;
 
 1458    void 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;
 
 1459    void 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;
 
 1460    void 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;
 
 1461    void GEQRF(
const int& m, 
const int& n, 
double* A, 
const int& lda, 
double* TAU, 
double* WORK, 
const int& lwork, 
int* info) 
const;
 
 1462    void GEQR2(
const int& m, 
const int& n, 
double* A, 
const int& lda, 
double* TAU, 
double* WORK, 
int* 
const info) 
const;
 
 1463    void GETRF(
const int& m, 
const int& n, 
double* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1464    void 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;
 
 1465    void 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;
 
 1467    void 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;
 
 1468    void LASWP (
const int& N, 
double* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1470    void GBTRF(
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
double* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1471    void 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;
 
 1472    void GTTRF(
const int& n, 
double* dl, 
double* d, 
double* du, 
double* du2, 
int* IPIV, 
int* info) 
const;
 
 1473    void 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;
 
 1474    void GETRI(
const int& n, 
double* A, 
const int& lda, 
const int* IPIV, 
double* WORK, 
const int& lwork, 
int* info) 
const;
 
 1475    void 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;
 
 1476    void 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;
 
 1477    void 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;
 
 1478    double LANGB(
const char& NORM, 
const int& n, 
const int& kl, 
const int& ku, 
const double* A, 
const int& lda, 
double* WORK) 
const;
 
 1479    void GESV(
const int& n, 
const int& nrhs, 
double* A, 
const int& lda, 
int* IPIV, 
double* B, 
const int& ldb, 
int* info) 
const;
 
 1480    void 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;
 
 1481    void 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;
 
 1482    void 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;
 
 1483    void 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;
 
 1485    void 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;
 
 1487    void 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;
 
 1488    void 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;
 
 1489    void 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;
 
 1490    void TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, 
double* A, 
const int& lda, 
int* info) 
const;
 
 1493    void STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1494    void PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1495    void SPEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* AP, 
double* W, 
double* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1496    void 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;
 
 1497    void 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;
 
 1498    void HEEV(
const char& JOBZ, 
const char& UPLO, 
const int& n, 
double* A, 
const int& lda, 
double* W, 
double* WORK, 
const int& lwork, 
double* RWORK, 
int* info) 
const;
 
 1499    void 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* RWORK, 
int* info) 
const;
 
 1502    void 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;
 
 1503    void 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;
 
 1504    void 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* RWORK, 
int* BWORK, 
int* info) 
const;
 
 1506    void 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;
 
 1507    void 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* RWORK, 
int* info) 
const;
 
 1509    void 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;
 
 1510    void 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;
 
 1511    void 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* rwork, 
int* IWORK, 
int* BWORK, 
int* info) 
const;
 
 1512    void 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;
 
 1513    void 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;
 
 1514    void 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;
 
 1515    void 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;
 
 1519    void 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* RWORK, 
int* info) 
const;
 
 1522    void 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;
 
 1523    void 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;
 
 1524    void 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;
 
 1525    void 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;
 
 1526    void 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;
 
 1527    void 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;
 
 1528    void 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;
 
 1529    void 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;
 
 1532    void 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;
 
 1533    void 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* RWORK, 
int* info) 
const;
 
 1535    void 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;
 
 1537    void 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;
 
 1540    void LARTG( 
const double& f, 
const double& g, 
double* c, 
double* s, 
double* r ) 
const;
 
 1541    void LARFG( 
const int& n, 
double* alpha, 
double* x, 
const int& incx, 
double* tau ) 
const;
 
 1545    void GEBAL(
const char& JOBZ, 
const int& n, 
double* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info) 
const;
 
 1547    void 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;
 
 1550    double LARND( 
const int& idist, 
int* seed ) 
const;
 
 1551    void LARNV( 
const int& idist, 
int* seed, 
const int& n, 
double* v ) 
const;
 
 1554    double LAMCH(
const char& CMACH) 
const;
 
 1555    int ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1 = -1, 
const int& N2 = -1, 
const int& N3 = -1, 
const int& N4 = -1 ) 
const;
 
 1558    double LAPY2(
const double& x, 
const double& y) 
const;
 
 1564#ifdef HAVE_TEUCHOS_COMPLEX 
 1569  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<float> >
 
 1572    inline LAPACK(
void) {}
 
 1573    inline LAPACK(
const LAPACK<
int, std::complex<float> >& lapack) {}
 
 1574    inline virtual ~LAPACK(
void) {}
 
 1577    void PTTRF(
const int& n, 
float* d, std::complex<float>* e, 
int* info) 
const;
 
 1578    void 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;
 
 1579    void POTRF(
const char& UPLO, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info) 
const;
 
 1580    void 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;
 
 1581    void POTRI(
const char& UPLO, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info) 
const;
 
 1582    void 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;
 
 1583    void 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;
 
 1584    void POEQU(
const int& n, 
const std::complex<float>* A, 
const int& lda, 
float* S, 
float* scond, 
float* amax, 
int* info) 
const;
 
 1585    void 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;
 
 1587    void 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;
 
 1590    void 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;
 
 1591    void 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;
 
 1592    void 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;
 
 1593    void 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;
 
 1594    void 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;
 
 1595    void 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;
 
 1596    void 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;
 
 1597    void GETRF(
const int& m, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1598    void 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;
 
 1599    void 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;
 
 1601    void 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;
 
 1602    void LASWP (
const int& N, std::complex<float>* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1604    void 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;
 
 1605    void 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;
 
 1606    void 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;
 
 1607    void 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;
 
 1608    void GETRI(
const int& n, std::complex<float>* A, 
const int& lda, 
const int* IPIV, std::complex<float>* WORK, 
const int& lwork, 
int* info) 
const;
 
 1609    void 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;
 
 1610    void 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;
 
 1611    void 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;
 
 1612    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;
 
 1613    void 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;
 
 1614    void 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;
 
 1615    void 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;
 
 1616    void 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;
 
 1617    void 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;
 
 1619    void 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;
 
 1621    void 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;
 
 1622    void 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;
 
 1623    void TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* info) 
const;
 
 1626    void STEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, std::complex<float>* Z, 
const int& ldz, 
float* WORK, 
int* info) 
const;
 
 1627    void PTEQR(
const char& COMPZ, 
const int& n, 
float* D, 
float* E, std::complex<float>* Z, 
const int& ldz, 
float* WORK, 
int* info) 
const;
 
 1628    void 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;
 
 1629    void 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;
 
 1632    void 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;
 
 1633    void 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;
 
 1634    void 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;
 
 1636    void 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;
 
 1637    void 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;
 
 1639    void 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;
 
 1641    void 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;
 
 1642    void 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;
 
 1643    void 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;
 
 1644    void 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;
 
 1645    void 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;
 
 1648    void 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;
 
 1651    void 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;
 
 1652    void 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;
 
 1654    void 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;
 
 1657    void LARTG( 
const std::complex<float> f, 
const std::complex<float> g, 
float* c, std::complex<float>* s, std::complex<float>* r ) 
const;
 
 1658    void LARFG( 
const int& n, std::complex<float>* alpha, std::complex<float>* x, 
const int& incx, std::complex<float>* tau ) 
const;
 
 1662    void GEBAL(
const char& JOBZ, 
const int& n, std::complex<float>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
float* scale, 
int* info) 
const;
 
 1664    void 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;
 
 1667    std::complex<float> LARND( 
const int& idist, 
int* seed ) 
const;
 
 1668    void LARNV( 
const int& idist, 
int* seed, 
const int& n, std::complex<float>* v ) 
const;
 
 1671    int ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1 = -1, 
const int& N2 = -1, 
const int& N3 = -1, 
const int& N4 = -1 ) 
const;
 
 1680  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<double> >
 
 1683    inline LAPACK(
void) {}
 
 1684    inline LAPACK(
const LAPACK<
int, std::complex<double> >& lapack) {}
 
 1685    inline virtual ~LAPACK(
void) {}
 
 1688    void PTTRF(
const int& n, 
double* d, std::complex<double>* e, 
int* info) 
const;
 
 1689    void 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;
 
 1690    void POTRF(
const char& UPLO, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1691    void 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;
 
 1692    void POTRI(
const char& UPLO, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1693    void 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;
 
 1694    void 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;
 
 1695    void POEQU(
const int& n, 
const std::complex<double>* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info) 
const;
 
 1696    void 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;
 
 1698    void 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;
 
 1701    void 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;
 
 1702    void 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;
 
 1703    void 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;
 
 1704    void 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;
 
 1705    void 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;
 
 1706    void 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;
 
 1707    void 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;
 
 1709    void GETRF(
const int& m, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1710    void 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;
 
 1711    void 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;
 
 1713    void 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;
 
 1714    void LASWP (
const int& N, std::complex<double>* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1716    void 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;
 
 1717    void 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;
 
 1718    void 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;
 
 1719    void 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;
 
 1720    void GETRI(
const int& n, std::complex<double>* A, 
const int& lda, 
const int* IPIV, std::complex<double>* WORK, 
const int& lwork, 
int* info) 
const;
 
 1721    void 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;
 
 1722    void 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;
 
 1723    void 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;
 
 1724    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;
 
 1725    void 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;
 
 1726    void 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;
 
 1727    void 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;
 
 1728    void 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;
 
 1729    void 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;
 
 1731    void 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;
 
 1733    void 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;
 
 1734    void 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;
 
 1735    void TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1738    void STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, std::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1739    void PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, std::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1740    void 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;
 
 1741    void 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;
 
 1744    void 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;
 
 1745    void 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;
 
 1746    void 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;
 
 1748    void 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;
 
 1749    void 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;
 
 1751    void 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;
 
 1752    void 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;
 
 1753    void 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;
 
 1754    void 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;
 
 1755    void 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;
 
 1756    void 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;
 
 1759    void 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;
 
 1762    void 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;
 
 1763    void 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;
 
 1765    void 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;
 
 1768    void LARTG( 
const std::complex<double> f, 
const std::complex<double> g, 
double* c, std::complex<double>* s, std::complex<double>* r ) 
const;
 
 1769    void LARFG( 
const int& n, std::complex<double>* alpha, std::complex<double>* x, 
const int& incx, std::complex<double>* tau ) 
const;
 
 1773    void GEBAL(
const char& JOBZ, 
const int& n, std::complex<double>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info) 
const;
 
 1775    void 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;
 
 1778    std::complex<double> LARND( 
const int& idist, 
int* seed ) 
const;
 
 1779    void LARNV( 
const int& idist, 
int* seed, 
const int& n, std::complex<double>* v ) 
const;
 
 1782    int ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1 = -1, 
const int& N2 = -1, 
const int& N3 = -1, 
const int& N4 = -1 ) 
const;
 
 1789#ifdef HAVE_TEUCHOSCORE_KOKKOS 
 1791  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, Kokkos::complex<double> >
 
 1794    inline LAPACK(
void) {}
 
 1795    inline LAPACK(
const LAPACK<
int, Kokkos::complex<double> >& lapack) {}
 
 1796    inline virtual ~LAPACK(
void) {}
 
 1799    void PTTRF(
const int& n, 
double* d, Kokkos::complex<double>* e, 
int* info) 
const;
 
 1800    void 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;
 
 1801    void POTRF(
const char& UPLO, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1802    void 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;
 
 1803    void POTRI(
const char& UPLO, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1804    void 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;
 
 1805    void 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;
 
 1806    void POEQU(
const int& n, 
const Kokkos::complex<double>* A, 
const int& lda, 
double* S, 
double* scond, 
double* amax, 
int* info) 
const;
 
 1807    void 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;
 
 1809    void 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;
 
 1812    void 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;
 
 1813    void 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;
 
 1814    void 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;
 
 1815    void 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;
 
 1816    void 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;
 
 1817    void 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;
 
 1818    void 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;
 
 1820    void GETRF(
const int& m, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1821    void 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;
 
 1822    void 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;
 
 1824    void 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;
 
 1825    void LASWP (
const int& N, Kokkos::complex<double>* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1827    void 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;
 
 1828    void 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;
 
 1829    void 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;
 
 1830    void 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;
 
 1831    void GETRI(
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
const int* IPIV, Kokkos::complex<double>* WORK, 
const int& lwork, 
int* info) 
const;
 
 1832    void 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;
 
 1833    void 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;
 
 1834    void 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;
 
 1835    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;
 
 1836    void 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;
 
 1837    void 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;
 
 1838    void 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;
 
 1839    void 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;
 
 1840    void 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;
 
 1842    void 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;
 
 1844    void 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;
 
 1845    void 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;
 
 1846    void TRTRI(
const char& UPLO, 
const char& DIAG, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* info) 
const;
 
 1849    void STEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, Kokkos::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1850    void PTEQR(
const char& COMPZ, 
const int& n, 
double* D, 
double* E, Kokkos::complex<double>* Z, 
const int& ldz, 
double* WORK, 
int* info) 
const;
 
 1851    void 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;
 
 1852    void 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;
 
 1855    void 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;
 
 1856    void 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;
 
 1857    void 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;
 
 1859    void 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;
 
 1860    void 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;
 
 1862    void 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;
 
 1863    void 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;
 
 1864    void 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;
 
 1865    void 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;
 
 1866    void 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;
 
 1867    void 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;
 
 1870    void 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;
 
 1873    void 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;
 
 1874    void 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;
 
 1876    void 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;
 
 1879    void LARTG( 
const Kokkos::complex<double> f, 
const Kokkos::complex<double> g, 
double* c, Kokkos::complex<double>* s, Kokkos::complex<double>* r ) 
const;
 
 1880    void LARFG( 
const int& n, Kokkos::complex<double>* alpha, Kokkos::complex<double>* x, 
const int& incx, Kokkos::complex<double>* tau ) 
const;
 
 1884    void GEBAL(
const char& JOBZ, 
const int& n, Kokkos::complex<double>* A, 
const int& lda, 
int* ilo, 
int* ihi, 
double* scale, 
int* info) 
const;
 
 1886    void 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;
 
 1889    Kokkos::complex<double> LARND( 
const int& idist, 
int* seed ) 
const;
 
 1890    void LARNV( 
const int& idist, 
int* seed, 
const int& n, Kokkos::complex<double>* v ) 
const;
 
 1893    int ILAENV( 
const int& ispec, 
const std::string& NAME, 
const std::string& OPTS, 
const int& N1 = -1, 
const int& N2 = -1, 
const int& N3 = -1, 
const int& N4 = -1 ) 
const;
 
 1901#ifdef HAVE_TEUCHOSCORE_QUADMATH 
 1908  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, __float128>
 
 1911    inline LAPACK(
void) {}
 
 1912    inline LAPACK(
const LAPACK<int, __float128>& lapack) {}
 
 1913    inline virtual ~LAPACK(
void) {}
 
 1915    void GEQRF(
const int& m, 
const int& n, __float128* A, 
const int& lda, __float128* TAU, __float128* WORK, 
const int& lwork, 
int* info) 
const;
 
 1916    void GEQR2(
const int& m, 
const int& n, __float128* A, 
const int& lda, __float128* TAU, __float128* WORK, 
int* 
const info) 
const;
 
 1917    void GETRF(
const int& m, 
const int& n, __float128* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1918    void 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;
 
 1919    void GETRI(
const int& n, __float128* A, 
const int& lda, 
const int* IPIV, __float128* WORK, 
const int& lwork, 
int* info) 
const;
 
 1920    void LASWP (
const int& N, __float128* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1922    void 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;
 
 1923    void 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;
 
 1924    void 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;
 
 1926    void LARFG( 
const int& n, __float128* alpha, __float128* x, 
const int& incx, __float128* tau ) 
const;
 
 1928    __float128 LAPY2 (
const __float128 x, 
const __float128 y) 
const;
 
 1929    void LASCL (
const char& TYPE, 
const int& kl, 
const int& ku, 
const __float128 cfrom, 
const __float128 cto, 
const int& m, 
const int& n, __float128* A, 
const int& lda, 
int* info) 
const;
 
 1931    void GBTRF (
const int& m, 
const int& n, 
const int& kl, 
const int& ku, __float128* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1932    void GBTRS (
const char& TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const __float128* A, 
const int& lda, 
const int* IPIV, __float128* B, 
const int& ldb, 
int* info) 
const;
 
 1939#ifdef HAVE_TEUCHOS_LONG_DOUBLE 
 1946  class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, long double>
 
 1949    inline LAPACK(
void) {}
 
 1950    inline LAPACK(
const LAPACK<int, long double>& lapack) {}
 
 1951    inline virtual ~LAPACK(
void) {}
 
 1953    void GESV(
const int& n, 
const int& nrhs, 
long double* A, 
const int& lda, 
int* IPIV, 
long double* B, 
const int& ldb, 
int* info) 
const; 
 
 1954    void 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; 
 
 1955    void GTTRF(
const int& n, 
long double* dl, 
long double* d, 
long double* du, 
long double* du2, 
int* IPIV, 
int* info) 
const;
 
 1956    void 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;
 
 1957    void 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; 
 
 1958    void 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; 
 
 1959    void 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; 
 
 1960    void 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; 
 
 1961    void 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; 
 
 1962    void 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;
 
 1963    void POTRF(
const char& UPLO, 
const int& n, 
long double* A, 
const int& lda, 
int* info) 
const; 
 
 1964    void 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; 
 
 1965    void POEQU(
const int& n, 
const long double* A, 
const int& lda, 
long double* S, 
long double* scond, 
long double* amax, 
int* info) 
const; 
 
 1966    void 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;
 
 1967    void GEQR2(
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
long double* TAU, 
long double* WORK, 
int* 
const info) 
const;
 
 1968    void GETRF(
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1969    void 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;
 
 1970    void GETRI(
const int& n, 
long double* A, 
const int& lda, 
const int* IPIV, 
long double* WORK, 
const int& lwork, 
int* info) 
const;
 
 1971    void LASWP (
const int& N, 
long double* A, 
const int& LDA, 
const int& K1, 
const int& K2, 
const int* IPIV, 
const int& INCX) 
const;
 
 1973    void 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;
 
 1974    void 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;
 
 1975    void 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;
 
 1977    void LARFG( 
const int& n, 
long double* alpha, 
long double* x, 
const int& incx, 
long double* tau ) 
const;
 
 1979    long double LAPY2 (
const long double x, 
const long double y) 
const;
 
 1980    void LASCL (
const char& TYPE, 
const int& kl, 
const int& ku, 
const long double cfrom, 
const long double cto, 
const int& m, 
const int& n, 
long double* A, 
const int& lda, 
int* info) 
const;
 
 1982    void GBTRF (
const int& m, 
const int& n, 
const int& kl, 
const int& ku, 
long double* A, 
const int& lda, 
int* IPIV, 
int* info) 
const;
 
 1983    void GBTRS (
const char& TRANS, 
const int& n, 
const int& kl, 
const int& ku, 
const int& nrhs, 
const long double* A, 
const int& lda, 
const int* IPIV, 
long double* B, 
const int& ldb, 
int* info) 
const;
 
Teuchos header file which uses auto-configuration information to include necessary C++ headers.
 
Defines basic traits for the scalar field type.
 
The Templated LAPACK Wrapper Class.
 
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.
 
LAPACK(const LAPACK< OrdinalType, ScalarType > &lapack)
Copy Constructor.
 
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,...
 
virtual ~LAPACK(void)
Destructor.
 
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...
 
LAPACK(void)
Default Constructor.
 
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.
 
Ptr< T > ptr() const
Get a safer wrapper raw C++ pointer to the underlying object.
 
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
 
static magnitudeType magnitude(T a)
Returns the magnitudeType of the scalar type a.
 
static T one()
Returns representation of one for this scalar type.
 
T magnitudeType
Mandatory typedef for result of magnitude.
 
static T zero()
Returns representation of zero for this scalar type.
 
static T squareroot(T x)
Returns a number of magnitudeType that is the square root of this scalar type x.
 
static magnitudeType sfmin()
Returns safe minimum (sfmin), such that 1/sfmin does not overflow.