42#ifndef _TEUCHOS_LAPACK_HPP_
43#define _TEUCHOS_LAPACK_HPP_
89 struct UndefinedLAPACKRoutine
92 static inline T notDefined() {
return T::LAPACK_routine_not_defined_for_this_type(); }
95 template<
typename OrdinalType,
typename ScalarType>
144 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;
147 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;
154 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;
189 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;
192 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;
195 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;
221 MagnitudeType*
RWORK,
238 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;
244 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;
254 LATRS (
const char& UPLO,
262 MagnitudeType*
SCALE,
263 MagnitudeType*
CNORM,
270 void GBCON(
const char&
NORM,
const OrdinalType& n,
const OrdinalType&
kl,
const OrdinalType&
ku,
const ScalarType*
A,
const OrdinalType&
lda,
OrdinalType* IPIV,
const ScalarType&
anorm,
ScalarType*
rcond,
ScalarType*
WORK,
OrdinalType*
IWORK,
OrdinalType* info)
const;
282 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;
285 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;
288 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;
292 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;
324 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;
334 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;
346 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;
351 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;
356 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;
361 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;
368 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;
374 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;
380 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;
385 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;
391 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;
397 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;
403 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;
411 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;
427 void ORMQR(
const char&
SIDE,
const char&
TRANS,
const OrdinalType&
m,
const OrdinalType& n,
const OrdinalType&
k,
ScalarType*
A,
const OrdinalType&
lda,
const ScalarType*
TAU,
ScalarType* C,
const OrdinalType&
ldc,
ScalarType*
WORK,
const OrdinalType&
lwork,
OrdinalType* info)
const;
434 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;
444 void UNMQR(
const char&
SIDE,
const char&
TRANS,
const OrdinalType&
m,
const OrdinalType& n,
const OrdinalType&
k,
ScalarType*
A,
const OrdinalType&
lda,
const ScalarType*
TAU,
ScalarType* C,
const OrdinalType&
ldc,
ScalarType*
WORK,
const OrdinalType&
lwork,
OrdinalType* info)
const;
450 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;
481 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;
489 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;
494 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;
504 void TGEVC(
const char&
SIDE,
const char&
HOWMNY,
const OrdinalType*
SELECT,
const OrdinalType& n,
ScalarType*
S,
const OrdinalType&
lds,
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;
569 template<
typename OrdinalType,
typename ScalarType>
572 UndefinedLAPACKRoutine<ScalarType>::notDefined();
575 template<
typename OrdinalType,
typename ScalarType>
576 void LAPACK<OrdinalType, ScalarType>::PTTRS(
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* d,
const ScalarType* e, ScalarType* B,
const OrdinalType& ldb, OrdinalType* info)
const
578 UndefinedLAPACKRoutine<ScalarType>::notDefined();
581 template<
typename OrdinalType,
typename ScalarType>
584 UndefinedLAPACKRoutine<ScalarType>::notDefined();
587 template<
typename OrdinalType,
typename ScalarType>
588 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
590 UndefinedLAPACKRoutine<ScalarType>::notDefined();
593 template<
typename OrdinalType,
typename ScalarType>
596 UndefinedLAPACKRoutine<ScalarType>::notDefined();
599 template<
typename OrdinalType,
typename ScalarType>
600 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
602 UndefinedLAPACKRoutine<ScalarType>::notDefined();
605 template<
typename OrdinalType,
typename ScalarType>
606 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
608 UndefinedLAPACKRoutine<ScalarType>::notDefined();
611 template<
typename OrdinalType,
typename ScalarType>
612 void LAPACK<OrdinalType, ScalarType>::POEQU(
const OrdinalType& n,
const ScalarType* A,
const OrdinalType& lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const
618 }
else if (lda < TEUCHOS_MAX(1, n)) {
639 MagnitudeType smin = S[0];
641 for (OrdinalType i=0; i<n; ++i) {
643 smin = TEUCHOS_MIN( smin, S[i] );
644 *amax = TEUCHOS_MAX( *amax, S[i] );
649 for (OrdinalType i=0; i<n; ++i) {
655 for (OrdinalType i=0; i<n; ++i) {
663 template<
typename OrdinalType,
typename ScalarType>
664 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
666 UndefinedLAPACKRoutine<ScalarType>::notDefined();
669 template<
typename OrdinalType,
typename ScalarType>
670 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
672 UndefinedLAPACKRoutine<ScalarType>::notDefined();
675 template<
typename OrdinalType,
typename ScalarType>
676 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
678 UndefinedLAPACKRoutine<ScalarType>::notDefined();
681 template<
typename OrdinalType,
typename ScalarType>
682 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
684 UndefinedLAPACKRoutine<ScalarType>::notDefined();
687 template<
typename OrdinalType,
typename ScalarType>
688 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
690 UndefinedLAPACKRoutine<ScalarType>::notDefined();
693 template<
typename OrdinalType,
typename ScalarType>
694 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
696 UndefinedLAPACKRoutine<ScalarType>::notDefined();
699 template<
typename OrdinalType,
typename ScalarType>
700 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
702 UndefinedLAPACKRoutine<ScalarType>::notDefined();
705 template<
typename OrdinalType,
typename ScalarType>
706 void LAPACK<OrdinalType,ScalarType>::GEQR2 (
const OrdinalType& m,
const OrdinalType& n, ScalarType A[],
const OrdinalType& lda, ScalarType TAU[], ScalarType WORK[], OrdinalType*
const info)
const
708 UndefinedLAPACKRoutine<ScalarType>::notDefined();
711 template<
typename OrdinalType,
typename ScalarType>
714 UndefinedLAPACKRoutine<ScalarType>::notDefined();
717 template<
typename OrdinalType,
typename ScalarType>
718 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
720 UndefinedLAPACKRoutine<ScalarType>::notDefined();
723 template<
typename OrdinalType,
typename ScalarType>
724 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
740 MagnitudeType cfromc = cfrom;
741 MagnitudeType ctoc = cto;
742 MagnitudeType cfrom1;
747 cfrom1 = cfromc*smlnum;
748 if (cfrom1 == cfromc) {
754 cto1 = ctoc / bignum;
760 }
else if (ScalarTraits<ScalarType>::magnitude(cfrom1) > ScalarTraits<ScalarType>::magnitude(ctoc) && ctoc != mZero) {
764 }
else if (ScalarTraits<ScalarType>::magnitude(cto1) > ScalarTraits<ScalarType>::magnitude(cfromc)) {
774 for (j=0; j<n; j++) {
776 for (i=0; i<m; i++) { *
ptr = mul * (*ptr);
ptr++; }
782 template<
typename OrdinalType,
typename ScalarType>
785 GEQP3 (
const OrdinalType& m,
786 const OrdinalType& n,
788 const OrdinalType& lda,
792 const OrdinalType& lwork,
793 MagnitudeType* RWORK,
794 OrdinalType* info)
const
796 UndefinedLAPACKRoutine<ScalarType>::notDefined();
799 template<
typename OrdinalType,
typename ScalarType>
802 LASWP (
const OrdinalType& N,
804 const OrdinalType& LDA,
805 const OrdinalType& K1,
806 const OrdinalType& K2,
807 const OrdinalType IPIV[],
808 const OrdinalType& INCX)
const
810 UndefinedLAPACKRoutine<ScalarType>::notDefined();
813 template<
typename OrdinalType,
typename ScalarType>
814 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
816 UndefinedLAPACKRoutine<ScalarType>::notDefined();
819 template<
typename OrdinalType,
typename ScalarType>
820 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
822 UndefinedLAPACKRoutine<ScalarType>::notDefined();
825 template<
typename OrdinalType,
typename ScalarType>
828 UndefinedLAPACKRoutine<ScalarType>::notDefined();
831 template<
typename OrdinalType,
typename ScalarType>
832 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
834 UndefinedLAPACKRoutine<ScalarType>::notDefined();
837 template<
typename OrdinalType,
typename ScalarType>
838 void LAPACK<OrdinalType,ScalarType>::GETRI(
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
840 UndefinedLAPACKRoutine<ScalarType>::notDefined();
843 template<
typename OrdinalType,
typename ScalarType>
846 LATRS (
const char& UPLO,
850 const OrdinalType& N,
852 const OrdinalType& LDA,
854 MagnitudeType* SCALE,
855 MagnitudeType* CNORM,
856 OrdinalType* INFO)
const
858 UndefinedLAPACKRoutine<ScalarType>::notDefined();
861 template<
typename OrdinalType,
typename ScalarType>
862 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
864 UndefinedLAPACKRoutine<ScalarType>::notDefined();
867 template<
typename OrdinalType,
typename ScalarType>
868 void LAPACK<OrdinalType,ScalarType>::GBCON(
const char& NORM,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
870 UndefinedLAPACKRoutine<ScalarType>::notDefined();
873 template<
typename OrdinalType,
typename ScalarType>
874 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
876 UndefinedLAPACKRoutine<ScalarType>::notDefined();
879 template<
typename OrdinalType,
typename ScalarType>
880 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
882 UndefinedLAPACKRoutine<ScalarType>::notDefined();
885 template<
typename OrdinalType,
typename ScalarType>
886 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
895 }
else if (lda < TEUCHOS_MAX(1, m)) {
908 if (m == 0 || n == 0) {
920 for (OrdinalType i=0; i<m; i++) {
925 for (OrdinalType j=0; j<n; j++) {
926 for (OrdinalType i=0; i<m; i++) {
927 R[i] = TEUCHOS_MAX( R[i], ScalarTraits<ScalarType>::magnitude( A[j*lda + i] ) );
932 MagnitudeType rcmin = bignum;
933 MagnitudeType rcmax = mZero;
934 for (OrdinalType i=0; i<m; i++) {
935 rcmax = TEUCHOS_MAX( rcmax, R[i] );
936 rcmin = TEUCHOS_MIN( rcmin, R[i] );
940 if (rcmin == mZero) {
942 for (OrdinalType i=0; i<m; i++) {
948 for (OrdinalType i=0; i<m; i++) {
949 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
952 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
956 for (OrdinalType j=0; j<n; j++) {
961 for (OrdinalType j=0; j<n; j++) {
962 for (OrdinalType i=0; i<m; i++) {
963 C[j] = TEUCHOS_MAX( C[j], R[i]*ScalarTraits<ScalarType>::magnitude( A[j*lda + i] ) );
970 for (OrdinalType j=0; j<n; j++) {
971 rcmax = TEUCHOS_MAX( rcmax, C[j] );
972 rcmin = TEUCHOS_MIN( rcmin, C[j] );
975 if (rcmin == mZero) {
977 for (OrdinalType j=0; j<n; j++) {
983 for (OrdinalType j=0; j<n; j++) {
984 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
987 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
991 template<
typename OrdinalType,
typename ScalarType>
992 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
994 UndefinedLAPACKRoutine<ScalarType>::notDefined();
997 template<
typename OrdinalType,
typename ScalarType>
998 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
1007 }
else if (kl < 0) {
1009 }
else if (ku < 0) {
1011 }
else if (lda < kl+ku+1) {
1024 if (m == 0 || n == 0) {
1036 for (OrdinalType i=0; i<m; i++) {
1041 for (OrdinalType j=0; j<n; j++) {
1042 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
1043 R[i] = TEUCHOS_MAX( R[i], ScalarTraits<ScalarType>::magnitude( A[j*lda + ku+i-j] ) );
1048 MagnitudeType rcmin = bignum;
1049 MagnitudeType rcmax = mZero;
1050 for (OrdinalType i=0; i<m; i++) {
1051 rcmax = TEUCHOS_MAX( rcmax, R[i] );
1052 rcmin = TEUCHOS_MIN( rcmin, R[i] );
1056 if (rcmin == mZero) {
1058 for (OrdinalType i=0; i<m; i++) {
1064 for (OrdinalType i=0; i<m; i++) {
1065 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
1068 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1072 for (OrdinalType j=0; j<n; j++) {
1077 for (OrdinalType j=0; j<n; j++) {
1078 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
1079 C[j] = TEUCHOS_MAX( C[j], R[i]*ScalarTraits<ScalarType>::magnitude( A[j*lda + ku+i-j] ) );
1086 for (OrdinalType j=0; j<n; j++) {
1087 rcmax = TEUCHOS_MAX( rcmax, C[j] );
1088 rcmin = TEUCHOS_MIN( rcmin, C[j] );
1091 if (rcmin == mZero) {
1093 for (OrdinalType j=0; j<n; j++) {
1099 for (OrdinalType j=0; j<n; j++) {
1100 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
1103 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1107 template<
typename OrdinalType,
typename ScalarType>
1108 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
1110 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1113 template<
typename OrdinalType,
typename ScalarType>
1114 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
1116 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1119 template<
typename OrdinalType,
typename ScalarType>
1120 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
1122 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1125 template<
typename OrdinalType,
typename ScalarType>
1126 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
1128 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1131 template<
typename OrdinalType,
typename ScalarType>
1132 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
1134 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1137 template<
typename OrdinalType,
typename ScalarType>
1140 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1143 template<
typename OrdinalType,
typename ScalarType>
1144 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
1146 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1149 template<
typename OrdinalType,
typename ScalarType>
1150 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
1152 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1155 template<
typename OrdinalType,
typename ScalarType>
1156 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
1158 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1161 template<
typename OrdinalType,
typename ScalarType>
1162 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
1164 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1167 template<
typename OrdinalType,
typename ScalarType>
1168 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
1170 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1173 template<
typename OrdinalType,
typename ScalarType>
1174 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
1176 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1179 template<
typename OrdinalType,
typename ScalarType>
1180 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
1182 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1185 template<
typename OrdinalType,
typename ScalarType>
1186 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
1188 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1191 template<
typename OrdinalType,
typename ScalarType>
1192 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
1194 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1197 template<
typename OrdinalType,
typename ScalarType>
1198 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
1200 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1203 template<
typename OrdinalType,
typename ScalarType>
1204 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
1206 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1209 template<
typename OrdinalType,
typename ScalarType>
1210 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
1212 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1215 template<
typename OrdinalType,
typename ScalarType>
1216 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
1218 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1221 template<
typename OrdinalType,
typename ScalarType>
1222 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
1224 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1227 template<
typename OrdinalType,
typename ScalarType>
1228 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
1230 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1233 template<
typename OrdinalType,
typename ScalarType>
1234 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
1236 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1240 template<
typename OrdinalType,
typename ScalarType>
1241 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
1243 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1247 template<
typename OrdinalType,
typename ScalarType>
1248 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
1250 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1254 template<
typename OrdinalType,
typename ScalarType>
1255 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
1257 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1260 template<
typename OrdinalType,
typename ScalarType>
1261 void LAPACK<OrdinalType, ScalarType>::ORMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1263 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1266 template<
typename OrdinalType,
typename ScalarType>
1267 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
1269 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1272 template<
typename OrdinalType,
typename ScalarType>
1273 void LAPACK<OrdinalType, ScalarType>::UNMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1275 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1278 template<
typename OrdinalType,
typename ScalarType>
1279 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
1281 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1284 template<
typename OrdinalType,
typename ScalarType>
1285 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
1287 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1290 template<
typename OrdinalType,
typename ScalarType>
1291 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
1293 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1296 template<
typename OrdinalType,
typename ScalarType>
1297 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
1299 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1302 template<
typename OrdinalType,
typename ScalarType>
1303 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
1305 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1308 template<
typename OrdinalType,
typename ScalarType>
1309 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
1311 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1314 template<
typename OrdinalType,
typename ScalarType>
1315 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
1317 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1320 template<
typename OrdinalType,
typename ScalarType>
1321 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
1323 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1327 template<
typename OrdinalType,
typename ScalarType>
1328 void LAPACK<OrdinalType, ScalarType>::TGEVC(
const char& SIDE,
const char& HOWMNY,
const OrdinalType* SELECT,
const OrdinalType& n, ScalarType* S,
const OrdinalType& lds, 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
1330 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1334 template<
typename OrdinalType,
typename ScalarType>
1337 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1340 template<
typename OrdinalType,
typename ScalarType>
1341 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
1343 return UndefinedLAPACKRoutine<OrdinalType>::notDefined();
1346 template<
typename OrdinalType,
typename ScalarType>
1349 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1352 template<
typename OrdinalType,
typename ScalarType>
1355 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1358 template<
typename OrdinalType,
typename ScalarType>
1361 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1364 template<
typename OrdinalType,
typename ScalarType>
1365 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
1367 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1371 template<
typename OrdinalType,
typename ScalarType>
1372 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
1374 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1377 template<
typename OrdinalType,
typename ScalarType>
1380 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1383 template<
typename OrdinalType,
typename ScalarType>
1386 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1391#ifndef DOXYGEN_SHOULD_SKIP_THIS
1396 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, float>
1399 inline LAPACK(
void) {}
1400 inline LAPACK(
const LAPACK<int, float>& ) {}
1401 inline virtual ~LAPACK(
void) {}
1404 void POTRF(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1405 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;
1406 void PTTRF(
const int& n,
float* d,
float* e,
int* info)
const;
1407 void PTTRS(
const int& n,
const int& nrhs,
const float* d,
const float* e,
float* B,
const int& ldb,
int* info)
const;
1408 void POTRI(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1409 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;
1410 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float* B,
const int& ldb,
int* info)
const;
1411 void POEQU(
const int& n,
const float* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1412 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
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;
1414 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;
1417 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;
1418 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;
1419 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;
1420 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;
1421 void GEQRF(
const int& m,
const int& n,
float* A,
const int& lda,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1422 void GEQR2(
const int& m,
const int& n,
float A[],
const int& lda,
float TAU[],
float WORK[],
int*
const info)
const;
1424 void GETRF(
const int& m,
const int& n,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1425 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;
1426 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;
1429 GEQP3 (
const int& m,
1440 void LASWP (
const int& N,
1446 const int& INCX)
const;
1448 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1449 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;
1450 void GTTRF(
const int& n,
float* dl,
float* d,
float* du,
float* du2,
int* IPIV,
int* info)
const;
1451 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;
1454 void GETRI(
const int& n,
float* A,
const int& lda,
const int* IPIV,
float* WORK,
const int& lwork,
int* info)
const;
1455 void LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
float* A,
const int& LDA,
float* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1456 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;
1457 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
int* IPIV,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1458 float LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
float* WORK)
const;
1459 void GESV(
const int& n,
const int& nrhs,
float* A,
const int& lda,
int* IPIV,
float* B,
const int& ldb,
int* info)
const;
1460 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;
1461 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;
1462 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;
1463 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;
1465 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;
1467 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;
1468 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;
1469 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;
1470 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const float* A,
const int& lda,
int* info)
const;
1473 void STEQR(
const char& COMPZ,
const int& n,
float* D,
float* E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1474 void PTEQR(
const char& COMPZ,
const int& n,
float* D,
float* E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1475 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;
1476 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;
1477 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;
1478 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;
1479 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;
1482 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;
1483 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;
1484 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;
1486 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;
1487 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;
1489 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;
1490 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;
1491 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;
1492 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;
1493 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;
1494 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;
1495 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;
1498 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;
1501 void ORMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1502 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;
1503 void UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1504 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;
1505 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;
1506 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;
1507 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;
1508 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;
1511 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;
1512 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;
1514 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;
1516 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
float* S,
const int& lds,
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;
1519 void LARTG(
const float& f,
const float& g,
float* c,
float* s,
float* r )
const;
1520 void LARFG(
const int& n,
float* alpha,
float* x,
const int& incx,
float* tau )
const;
1524 void GEBAL(
const char& JOBZ,
const int& n,
float* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1526 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;
1529 float LARND(
const int& idist,
int* seed )
const;
1530 void LARNV(
const int& idist,
int* seed,
const int& n,
float* v )
const;
1533 float LAMCH(
const char& CMACH)
const;
1534 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;
1537 float LAPY2(
const float& x,
const float& y)
const;
1546 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, double>
1549 inline LAPACK(
void) {}
1550 inline LAPACK(
const LAPACK<int, double>& ) {}
1551 inline virtual ~LAPACK(
void) {}
1554 void PTTRF(
const int& n,
double* d,
double* e,
int* info)
const;
1555 void PTTRS(
const int& n,
const int& nrhs,
const double* d,
const double* e,
double* B,
const int& ldb,
int* info)
const;
1556 void POTRF(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1557 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;
1558 void POTRI(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1559 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;
1560 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double* B,
const int& ldb,
int* info)
const;
1561 void POEQU(
const int& n,
const double* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1562 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
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;
1564 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;
1567 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;
1568 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;
1569 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;
1570 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;
1571 void GEQRF(
const int& m,
const int& n,
double* A,
const int& lda,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1572 void GEQR2(
const int& m,
const int& n,
double A[],
const int& lda,
double TAU[],
double WORK[],
int*
const info)
const;
1573 void GETRF(
const int& m,
const int& n,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1574 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;
1575 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;
1578 GEQP3 (
const int& m,
1589 void LASWP (
const int& N,
1595 const int& INCX)
const;
1597 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1598 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;
1599 void GTTRF(
const int& n,
double* dl,
double* d,
double* du,
double* du2,
int* IPIV,
int* info)
const;
1600 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;
1601 void GETRI(
const int& n,
double* A,
const int& lda,
const int* IPIV,
double* WORK,
const int& lwork,
int* info)
const;
1602 void LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
double* A,
const int& LDA,
double* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1603 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;
1604 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
int* IPIV,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1605 double LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
double* WORK)
const;
1606 void GESV(
const int& n,
const int& nrhs,
double* A,
const int& lda,
int* IPIV,
double* B,
const int& ldb,
int* info)
const;
1607 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;
1608 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;
1609 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;
1610 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;
1612 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;
1614 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;
1615 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;
1616 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;
1617 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const double* A,
const int& lda,
int* info)
const;
1620 void STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1621 void PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1622 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;
1623 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;
1624 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;
1625 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;
1626 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;
1629 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;
1630 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;
1631 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;
1633 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;
1634 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;
1636 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;
1637 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;
1638 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;
1639 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;
1640 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;
1641 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;
1642 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;
1646 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;
1649 void ORMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1650 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;
1651 void UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1652 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;
1653 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;
1654 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;
1655 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;
1656 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;
1659 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;
1660 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;
1662 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;
1664 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
double* S,
const int& lds,
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;
1667 void LARTG(
const double& f,
const double& g,
double* c,
double* s,
double* r )
const;
1668 void LARFG(
const int& n,
double* alpha,
double* x,
const int& incx,
double* tau )
const;
1672 void GEBAL(
const char& JOBZ,
const int& n,
double* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1674 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;
1677 double LARND(
const int& idist,
int* seed )
const;
1678 void LARNV(
const int& idist,
int* seed,
const int& n,
double* v )
const;
1681 double LAMCH(
const char& CMACH)
const;
1682 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;
1685 double LAPY2(
const double& x,
const double& y)
const;
1691#ifdef HAVE_TEUCHOS_COMPLEX
1696 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<float> >
1699 inline LAPACK(
void) {}
1700 inline LAPACK(
const LAPACK<
int, std::complex<float> >& lapack) {}
1701 inline virtual ~LAPACK(
void) {}
1704 void PTTRF(
const int& n, std::complex<float>* d, std::complex<float>* e,
int* info)
const;
1705 void PTTRS(
const int& n,
const int& nrhs,
const std::complex<float>* d,
const std::complex<float>* e, std::complex<float>* B,
const int& ldb,
int* info)
const;
1706 void POTRF(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1707 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;
1708 void POTRI(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1709 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;
1710 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;
1711 void POEQU(
const int& n,
const std::complex<float>* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1712 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs, 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;
1714 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;
1717 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;
1718 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;
1719 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;
1720 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;
1721 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;
1722 void UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k, 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;
1723 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;
1724 void GETRF(
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
int* IPIV,
int* info)
const;
1725 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;
1726 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;
1729 GEQP3 (
const int& m,
1731 std::complex<float>* A,
1734 std::complex<float>* TAU,
1735 std::complex<float>* WORK,
1740 void LASWP (
const int& N,
1741 std::complex<float> A[],
1746 const int& INCX)
const;
1748 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;
1749 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;
1750 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;
1751 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;
1752 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;
1753 void LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N, std::complex<float>* A,
const int& LDA, std::complex<float>* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1754 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;
1755 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<float>* A,
const int& lda,
int* IPIV,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1756 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;
1757 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;
1758 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;
1759 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;
1760 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;
1761 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;
1763 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;
1765 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;
1766 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;
1767 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const std::complex<float>* A,
const int& lda,
int* info)
const;
1770 void STEQR(
const char& COMPZ,
const int& n,
float* D,
float* E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1771 void PTEQR(
const char& COMPZ,
const int& n,
float* D,
float* E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1772 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;
1773 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;
1776 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;
1777 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;
1778 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;
1780 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;
1781 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;
1783 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;
1785 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;
1786 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;
1787 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;
1790 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;
1793 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;
1794 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;
1796 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;
1799 void LARTG(
const std::complex<float> f,
const std::complex<float> g,
float* c, std::complex<float>* s, std::complex<float>* r )
const;
1800 void LARFG(
const int& n, std::complex<float>* alpha, std::complex<float>* x,
const int& incx, std::complex<float>* tau )
const;
1804 void GEBAL(
const char& JOBZ,
const int& n, std::complex<float>* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1806 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;
1809 std::complex<float> LARND(
const int& idist,
int* seed )
const;
1810 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<float>* v )
const;
1813 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;
1822 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<double> >
1825 inline LAPACK(
void) {}
1826 inline LAPACK(
const LAPACK<
int, std::complex<double> >& lapack) {}
1827 inline virtual ~LAPACK(
void) {}
1830 void PTTRF(
const int& n, std::complex<double>* d, std::complex<double>* e,
int* info)
const;
1831 void PTTRS(
const int& n,
const int& nrhs,
const std::complex<double>* d,
const std::complex<double>* e, std::complex<double>* B,
const int& ldb,
int* info)
const;
1832 void POTRF(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1833 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;
1834 void POTRI(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1835 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;
1836 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;
1837 void POEQU(
const int& n,
const std::complex<double>* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1838 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs, 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;
1840 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;
1843 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;
1844 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;
1845 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;
1846 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;
1847 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;
1848 void UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k, 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;
1849 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;
1851 void GETRF(
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1852 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;
1853 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;
1856 GEQP3 (
const int& m,
1858 std::complex<double>* A,
1861 std::complex<double>* TAU,
1862 std::complex<double>* WORK,
1867 void LASWP (
const int& N,
1868 std::complex<double> A[],
1873 const int& INCX)
const;
1875 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;
1876 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;
1877 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;
1878 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;
1879 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;
1880 void LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N, std::complex<double>* A,
const int& LDA, std::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1881 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;
1882 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<double>* A,
const int& lda,
int* IPIV,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1883 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;
1884 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;
1885 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;
1886 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;
1887 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;
1888 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;
1890 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;
1892 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;
1893 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;
1894 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const std::complex<double>* A,
const int& lda,
int* info)
const;
1897 void STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1898 void PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1899 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;
1900 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;
1903 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;
1904 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;
1905 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;
1907 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;
1908 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;
1910 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;
1911 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;
1912 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;
1913 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;
1916 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;
1919 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;
1920 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;
1922 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;
1925 void LARTG(
const std::complex<double> f,
const std::complex<double> g,
double* c, std::complex<double>* s, std::complex<double>* r )
const;
1926 void LARFG(
const int& n, std::complex<double>* alpha, std::complex<double>* x,
const int& incx, std::complex<double>* tau )
const;
1930 void GEBAL(
const char& JOBZ,
const int& n, std::complex<double>* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1932 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;
1935 std::complex<double> LARND(
const int& idist,
int* seed )
const;
1936 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<double>* v )
const;
1939 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;
1947#ifdef HAVE_TEUCHOSCORE_QUADMATH
1954 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, __float128>
1957 inline LAPACK(
void) {}
1958 inline LAPACK(
const LAPACK<int, __float128>& lapack) {}
1959 inline virtual ~LAPACK(
void) {}
1961 void GEQRF(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const;
1962 void GEQR2(
const int& m,
const int& n, __float128 A[],
const int& lda, __float128 TAU[], __float128 WORK[],
int*
const info)
const;
1963 void GETRF(
const int& m,
const int& n, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1964 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;
1965 void GETRI(
const int& n, __float128* A,
const int& lda,
const int* IPIV, __float128* WORK,
const int& lwork,
int* info)
const;
1966 void LASWP (
const int& N, __float128 A[],
const int& LDA,
const int& K1,
const int& K2,
const int IPIV[],
const int& INCX)
const;
1968 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;
1969 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;
1970 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;
1972 void LARFG(
const int& n, __float128* alpha, __float128* x,
const int& incx, __float128* tau )
const;
1974 __float128 LAPY2 (
const __float128 x,
const __float128 y)
const;
1975 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;
1977 void GBTRF (
const int& m,
const int& n,
const int& kl,
const int& ku, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1978 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;
1985#ifdef HAVE_TEUCHOS_LONG_DOUBLE
1992 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, long double>
1995 inline LAPACK(
void) {}
1996 inline LAPACK(
const LAPACK<int, long double>& lapack) {}
1997 inline virtual ~LAPACK(
void) {}
1999 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;
2000 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;
2001 void GTTRF(
const int& n,
long double* dl,
long double* d,
long double* du,
long double* du2,
int* IPIV,
int* info)
const;
2002 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;
2003 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;
2004 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;
2005 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;
2006 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;
2007 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
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;
2008 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;
2009 void POTRF(
const char& UPLO,
const int& n,
long double* A,
const int& lda,
int* info)
const;
2010 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;
2011 void POEQU(
const int& n,
const long double* A,
const int& lda,
long double* S,
long double* scond,
long double* amax,
int* info)
const;
2012 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;
2013 void GEQR2(
const int& m,
const int& n,
long double A[],
const int& lda,
long double TAU[],
long double WORK[],
int*
const info)
const;
2014 void GETRF(
const int& m,
const int& n,
long double* A,
const int& lda,
int* IPIV,
int* info)
const;
2015 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;
2016 void GETRI(
const int& n,
long double* A,
const int& lda,
const int* IPIV,
long double* WORK,
const int& lwork,
int* info)
const;
2017 void LASWP (
const int& N,
long double A[],
const int& LDA,
const int& K1,
const int& K2,
const int IPIV[],
const int& INCX)
const;
2019 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;
2020 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;
2021 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;
2023 void LARFG(
const int& n,
long double* alpha,
long double* x,
const int& incx,
long double* tau )
const;
2025 long double LAPY2 (
const long double x,
const long double y)
const;
2026 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;
2028 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;
2029 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 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 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 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.
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 ScalarType *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 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 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 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 TGEVC(const char &SIDE, const char &HOWMNY, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *S, const OrdinalType &lds, 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 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 LATRS(const char &UPLO, const char &TRANS, const char &DIAG, const char &NORMIN, const OrdinalType &N, ScalarType *A, const OrdinalType &LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
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 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.
void UNMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, 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).
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 TRTRI(const char &UPLO, const char &DIAG, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
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 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 PTTRF(const OrdinalType &n, ScalarType *d, ScalarType *e, OrdinalType *info) const
Computes the L*D*L' factorization of a Hermitian/symmetric positive definite tridiagonal matrix A.
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 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 GBCON(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, 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 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 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 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 ORMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
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.