42#ifndef _TEUCHOS_LAPACK_UQ_PCE_HPP_
43#define _TEUCHOS_LAPACK_UQ_PCE_HPP_
45#include "Teuchos_LAPACK.hpp"
46#include "Teuchos_TestForException.hpp"
58 template<
typename OrdinalType,
typename Storage>
64 typedef typename Teuchos::ScalarTraits<ScalarType>::magnitudeType
MagnitudeType;
91 void POTRF(
const char UPLO,
const OrdinalType n,
ScalarType* A,
const OrdinalType lda, OrdinalType* info)
const
95 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
99 void POTRI(
const char UPLO,
const OrdinalType n,
ScalarType* A,
const OrdinalType lda, OrdinalType* info)
const
108 void POSV(
const char UPLO,
const OrdinalType n,
const OrdinalType nrhs,
ScalarType* A,
const OrdinalType lda,
ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const
116 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
120 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
128 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
164 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
168 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
172 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
180 void GETRF(
const OrdinalType m,
const OrdinalType n,
ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV, OrdinalType* info)
const
184 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
188 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
195 const OrdinalType lda,
199 const OrdinalType lwork,
201 OrdinalType* info )
const
208 const OrdinalType LDA,
209 const OrdinalType K1,
210 const OrdinalType K2,
211 const OrdinalType IPIV[],
212 const OrdinalType INCX)
const
216 void GBTRF(
const OrdinalType m,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV, OrdinalType* info)
const
220 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
228 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
232 void GETRI(
const OrdinalType n,
ScalarType* A,
const OrdinalType lda,
const OrdinalType* IPIV,
ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const
246 const OrdinalType LDA,
250 OrdinalType* INFO)
const
258 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
262 typename 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
266 void GESV(
const OrdinalType n,
const OrdinalType nrhs,
ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV,
ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const
274 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,
MagnitudeType* FERR,
MagnitudeType* BERR,
ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
278 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
282 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
286 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
296 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
300 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
304 void TRTRI(
const char UPLO,
const char DIAG,
const OrdinalType n,
const ScalarType* A,
const OrdinalType lda, OrdinalType* info)
const
319 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
325 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
337 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
348 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
354 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
360 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
366 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
374 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
381 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
388 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
394 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
401 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
408 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
415 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
424 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
441 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
452 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
464 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
475 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
481 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
487 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
496 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
502 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
508 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
514 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
537 void GEBAL(
const char JOBZ,
const OrdinalType n,
ScalarType* A,
const OrdinalType lda, OrdinalType ilo, OrdinalType ihi,
MagnitudeType* scale, OrdinalType* info)
const
541 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
553 void LARNV(
const OrdinalType idist, OrdinalType* seed,
const OrdinalType n,
ScalarType* v )
const
569 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
585 TEUCHOS_TEST_FOR_EXCEPTION(
586 true, std::logic_error,
587 func <<
": Not implemented for Sacado::UQ::PCE scalar type!");
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 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
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 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 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 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 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 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 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 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 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).
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 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 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 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 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 ...
LAPACK(void)
Default Constructor.
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 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 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 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 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 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.
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.
ScalarType LAMCH(const char CMACH) const
Determines machine parameters for floating point characteristics.
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 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 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 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 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 LARNV(const OrdinalType idist, OrdinalType *seed, const OrdinalType n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
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
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 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).
Teuchos::ScalarTraits< ScalarType >::magnitudeType MagnitudeType
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 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 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 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...
ScalarType LARND(const OrdinalType idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
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 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 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 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 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 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...
void throw_error(const char *func) const
Sacado::UQ::PCE< Storage > ScalarType
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 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 STEQR(const char COMPZ, const OrdinalType n, ScalarType *D, ScalarType *E, ScalarType *Z, const OrdinalType ldz, ScalarType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal n by n matrix A usi...
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 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 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 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
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 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
ScalarType LAPY2(const ScalarType x, const ScalarType y) const
Computes x^2 + y^2 safely, to avoid overflow.
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).
LAPACK(const LAPACK< OrdinalType, ScalarType > &lapack)
Copy Constructor.
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 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 POSVX(const char FACT, const char UPLO, const OrdinalType n, const OrdinalType nrhs, ScalarType *A, const OrdinalType lda, ScalarType *AF, const OrdinalType ldaf, char EQUED, ScalarType *S, ScalarType *B, const OrdinalType ldb, ScalarType *X, const OrdinalType ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the Cholesky factorization to compute the solution to a real system of linear equations A*X=B,...
void 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 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 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 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 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
virtual ~LAPACK(void)
Destructor.
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 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...
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 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 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 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
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 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
Legacy GELSS interface for real-valued ScalarType.
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 GEEQU(const OrdinalType m, const OrdinalType n, 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 matrix A and reduce its condition ...
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 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, MagnitudeType *FERR, MagnitudeType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations and provides error bounds and backward...
ScalarType g(const Teuchos::Array< ScalarType > &x, const ScalarType &y)
ScalarType f(const Teuchos::Array< ScalarType > &x, double a, double b)