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>
119 void PTTRF(
const OrdinalType& n, MagnitudeType* d, ScalarType* e, OrdinalType* info)
const;
122 void PTTRS(
const OrdinalType& n,
const OrdinalType& nrhs,
const MagnitudeType* d,
const ScalarType* e, ScalarType* B,
const OrdinalType& ldb, OrdinalType* info)
const;
125 void POTRF(
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* info)
const;
128 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;
131 void POTRI(
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* info)
const;
134 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;
137 void POSV(
const char& UPLO,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType* B,
const OrdinalType& ldb, OrdinalType* info)
const;
140 void POEQU(
const OrdinalType& n,
const ScalarType* A,
const OrdinalType& lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const;
143 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;
146 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;
153 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;
188 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;
191 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;
194 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;
197 void GEQRF (
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
200 void GEQR2 (
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK, OrdinalType*
const info)
const;
203 void GETRF(
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV, OrdinalType* info)
const;
206 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;
209 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;
212 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;
215 void LASWP (
const OrdinalType& N, ScalarType* A,
const OrdinalType& LDA,
const OrdinalType& K1,
const OrdinalType& K2,
const OrdinalType* IPIV,
const OrdinalType& INCX)
const;
218 void GBTRF(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku, ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV, OrdinalType* info)
const;
221 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;
224 void GTTRF(
const OrdinalType& n, ScalarType* dl, ScalarType* d, ScalarType* du, ScalarType* du2, OrdinalType* IPIV, OrdinalType* info)
const;
227 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;
230 void GETRI(
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
236 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const OrdinalType& N,
const ScalarType* A,
const OrdinalType& LDA, ScalarType* X, MagnitudeType* SCALE, MagnitudeType* CNORM, OrdinalType* INFO)
const;
239 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;
242 void GBCON(
const char& NORM,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
248 void GESV(
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV, ScalarType* B,
const OrdinalType& ldb, OrdinalType* info)
const;
251 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;
254 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;
257 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;
260 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;
264 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;
269 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;
272 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;
275 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;
278 void TRTRI(
const char& UPLO,
const char& DIAG,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* info)
const;
286 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;
291 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;
296 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;
301 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;
306 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;
309 void STEQR(
const char& COMPZ,
const OrdinalType& n, MagnitudeType* D, MagnitudeType* E, ScalarType* Z,
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
const;
312 void PTEQR(
const char& COMPZ,
const OrdinalType& n, MagnitudeType* D, MagnitudeType* E, ScalarType* Z,
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
const;
317 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;
323 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;
328 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;
333 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;
340 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;
346 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;
352 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;
357 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;
363 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;
368 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;
373 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;
380 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;
397 void ORMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
404 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;
414 void UNMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
420 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;
431 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;
441 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;
446 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;
451 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;
459 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;
464 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;
469 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;
474 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const OrdinalType* SELECT,
const OrdinalType& n,
const ScalarType* S,
const OrdinalType& lds,
const ScalarType* P,
const OrdinalType& ldp, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* M, ScalarType* WORK, OrdinalType* info)
const;
483 void LARTG(
const ScalarType& f,
const ScalarType& g, MagnitudeType* c, ScalarType* s, ScalarType* r )
const;
486 void LARFG(
const OrdinalType& n, ScalarType* alpha, ScalarType* x,
const OrdinalType& incx, ScalarType* tau )
const;
495 void GEBAL(
const char& JOBZ,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* ilo, OrdinalType* ihi, MagnitudeType* scale, OrdinalType* info)
const;
498 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;
504 ScalarType
LARND(
const OrdinalType& idist, OrdinalType* seed )
const;
508 void LARNV(
const OrdinalType& idist, OrdinalType* seed,
const OrdinalType& n, ScalarType* v )
const;
516 ScalarType
LAMCH(
const char& CMACH)
const;
522 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;
530 ScalarType
LAPY2(
const ScalarType& x,
const ScalarType& y)
const;
539 template<
typename OrdinalType,
typename ScalarType>
542 UndefinedLAPACKRoutine<ScalarType>::notDefined();
545 template<
typename OrdinalType,
typename ScalarType>
546 void LAPACK<OrdinalType, ScalarType>::PTTRS(
const OrdinalType& n,
const OrdinalType& nrhs,
const MagnitudeType* d,
const ScalarType* e, ScalarType* B,
const OrdinalType& ldb, OrdinalType* info)
const
548 UndefinedLAPACKRoutine<ScalarType>::notDefined();
551 template<
typename OrdinalType,
typename ScalarType>
554 UndefinedLAPACKRoutine<ScalarType>::notDefined();
557 template<
typename OrdinalType,
typename ScalarType>
558 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
560 UndefinedLAPACKRoutine<ScalarType>::notDefined();
563 template<
typename OrdinalType,
typename ScalarType>
566 UndefinedLAPACKRoutine<ScalarType>::notDefined();
569 template<
typename OrdinalType,
typename ScalarType>
570 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
572 UndefinedLAPACKRoutine<ScalarType>::notDefined();
575 template<
typename OrdinalType,
typename ScalarType>
576 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
578 UndefinedLAPACKRoutine<ScalarType>::notDefined();
581 template<
typename OrdinalType,
typename ScalarType>
582 void LAPACK<OrdinalType, ScalarType>::POEQU(
const OrdinalType& n,
const ScalarType* A,
const OrdinalType& lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const
588 }
else if (lda < TEUCHOS_MAX(1, n)) {
609 MagnitudeType smin = S[0];
611 for (OrdinalType i=0; i<n; ++i) {
613 smin = TEUCHOS_MIN( smin, S[i] );
614 *amax = TEUCHOS_MAX( *amax, S[i] );
619 for (OrdinalType i=0; i<n; ++i) {
625 for (OrdinalType i=0; i<n; ++i) {
633 template<
typename OrdinalType,
typename ScalarType>
634 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
636 UndefinedLAPACKRoutine<ScalarType>::notDefined();
639 template<
typename OrdinalType,
typename ScalarType>
640 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
642 UndefinedLAPACKRoutine<ScalarType>::notDefined();
645 template<
typename OrdinalType,
typename ScalarType>
646 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
648 UndefinedLAPACKRoutine<ScalarType>::notDefined();
651 template<
typename OrdinalType,
typename ScalarType>
652 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
654 UndefinedLAPACKRoutine<ScalarType>::notDefined();
657 template<
typename OrdinalType,
typename ScalarType>
658 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
660 UndefinedLAPACKRoutine<ScalarType>::notDefined();
663 template<
typename OrdinalType,
typename ScalarType>
664 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
666 UndefinedLAPACKRoutine<ScalarType>::notDefined();
669 template<
typename OrdinalType,
typename ScalarType>
670 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
672 UndefinedLAPACKRoutine<ScalarType>::notDefined();
675 template<
typename OrdinalType,
typename ScalarType>
676 void LAPACK<OrdinalType,ScalarType>::GEQR2 (
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK, OrdinalType*
const info)
const
678 UndefinedLAPACKRoutine<ScalarType>::notDefined();
681 template<
typename OrdinalType,
typename ScalarType>
684 UndefinedLAPACKRoutine<ScalarType>::notDefined();
687 template<
typename OrdinalType,
typename ScalarType>
688 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
690 UndefinedLAPACKRoutine<ScalarType>::notDefined();
693 template<
typename OrdinalType,
typename ScalarType>
694 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
710 MagnitudeType cfromc = cfrom;
711 MagnitudeType ctoc = cto;
712 MagnitudeType cfrom1;
717 cfrom1 = cfromc*smlnum;
718 if (cfrom1 == cfromc) {
724 cto1 = ctoc / bignum;
744 for (j=0; j<n; j++) {
746 for (i=0; i<m; i++) { *ptr = mul * (*ptr); ptr++; }
752 template<
typename OrdinalType,
typename ScalarType>
753 void LAPACK<OrdinalType,ScalarType>::GEQP3 (
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* jpvt, ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, MagnitudeType* RWORK, OrdinalType* info)
const
755 UndefinedLAPACKRoutine<ScalarType>::notDefined();
758 template<
typename OrdinalType,
typename ScalarType>
759 void LAPACK<OrdinalType, ScalarType>::LASWP (
const OrdinalType& N, ScalarType* A,
const OrdinalType& LDA,
const OrdinalType& K1,
const OrdinalType& K2,
const OrdinalType* IPIV,
const OrdinalType& INCX)
const
761 UndefinedLAPACKRoutine<ScalarType>::notDefined();
764 template<
typename OrdinalType,
typename ScalarType>
765 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
767 UndefinedLAPACKRoutine<ScalarType>::notDefined();
770 template<
typename OrdinalType,
typename ScalarType>
771 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
773 UndefinedLAPACKRoutine<ScalarType>::notDefined();
776 template<
typename OrdinalType,
typename ScalarType>
779 UndefinedLAPACKRoutine<ScalarType>::notDefined();
782 template<
typename OrdinalType,
typename ScalarType>
783 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
785 UndefinedLAPACKRoutine<ScalarType>::notDefined();
788 template<
typename OrdinalType,
typename ScalarType>
789 void LAPACK<OrdinalType,ScalarType>::GETRI(
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
791 UndefinedLAPACKRoutine<ScalarType>::notDefined();
794 template<
typename OrdinalType,
typename ScalarType>
795 void LAPACK<OrdinalType,ScalarType>::LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const OrdinalType& N,
const ScalarType* A,
const OrdinalType& LDA, ScalarType* X, MagnitudeType* SCALE, MagnitudeType* CNORM, OrdinalType* INFO)
const
797 UndefinedLAPACKRoutine<ScalarType>::notDefined();
800 template<
typename OrdinalType,
typename ScalarType>
801 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
803 UndefinedLAPACKRoutine<ScalarType>::notDefined();
806 template<
typename OrdinalType,
typename ScalarType>
807 void LAPACK<OrdinalType,ScalarType>::GBCON(
const char& NORM,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
809 UndefinedLAPACKRoutine<ScalarType>::notDefined();
812 template<
typename OrdinalType,
typename ScalarType>
815 UndefinedLAPACKRoutine<ScalarType>::notDefined();
818 template<
typename OrdinalType,
typename ScalarType>
819 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
821 UndefinedLAPACKRoutine<ScalarType>::notDefined();
824 template<
typename OrdinalType,
typename ScalarType>
825 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
834 }
else if (lda < TEUCHOS_MAX(1, m)) {
847 if (m == 0 || n == 0) {
859 for (OrdinalType i=0; i<m; i++) {
864 for (OrdinalType j=0; j<n; j++) {
865 for (OrdinalType i=0; i<m; i++) {
871 MagnitudeType rcmin = bignum;
872 MagnitudeType rcmax = mZero;
873 for (OrdinalType i=0; i<m; i++) {
874 rcmax = TEUCHOS_MAX( rcmax, R[i] );
875 rcmin = TEUCHOS_MIN( rcmin, R[i] );
879 if (rcmin == mZero) {
881 for (OrdinalType i=0; i<m; i++) {
887 for (OrdinalType i=0; i<m; i++) {
888 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
891 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
895 for (OrdinalType j=0; j<n; j++) {
900 for (OrdinalType j=0; j<n; j++) {
901 for (OrdinalType i=0; i<m; i++) {
909 for (OrdinalType j=0; j<n; j++) {
910 rcmax = TEUCHOS_MAX( rcmax, C[j] );
911 rcmin = TEUCHOS_MIN( rcmin, C[j] );
914 if (rcmin == mZero) {
916 for (OrdinalType j=0; j<n; j++) {
922 for (OrdinalType j=0; j<n; j++) {
923 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
926 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
930 template<
typename OrdinalType,
typename ScalarType>
931 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
933 UndefinedLAPACKRoutine<ScalarType>::notDefined();
936 template<
typename OrdinalType,
typename ScalarType>
937 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
950 }
else if (lda < kl+ku+1) {
963 if (m == 0 || n == 0) {
975 for (OrdinalType i=0; i<m; i++) {
980 for (OrdinalType j=0; j<n; j++) {
981 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
987 MagnitudeType rcmin = bignum;
988 MagnitudeType rcmax = mZero;
989 for (OrdinalType i=0; i<m; i++) {
990 rcmax = TEUCHOS_MAX( rcmax, R[i] );
991 rcmin = TEUCHOS_MIN( rcmin, R[i] );
995 if (rcmin == mZero) {
997 for (OrdinalType i=0; i<m; i++) {
1003 for (OrdinalType i=0; i<m; i++) {
1004 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
1007 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1011 for (OrdinalType j=0; j<n; j++) {
1016 for (OrdinalType j=0; j<n; j++) {
1017 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
1025 for (OrdinalType j=0; j<n; j++) {
1026 rcmax = TEUCHOS_MAX( rcmax, C[j] );
1027 rcmin = TEUCHOS_MIN( rcmin, C[j] );
1030 if (rcmin == mZero) {
1032 for (OrdinalType j=0; j<n; j++) {
1038 for (OrdinalType j=0; j<n; j++) {
1039 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
1042 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1046 template<
typename OrdinalType,
typename ScalarType>
1047 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
1049 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1052 template<
typename OrdinalType,
typename ScalarType>
1053 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
1055 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1058 template<
typename OrdinalType,
typename ScalarType>
1059 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
1061 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1064 template<
typename OrdinalType,
typename ScalarType>
1065 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
1067 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1070 template<
typename OrdinalType,
typename ScalarType>
1071 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
1073 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1076 template<
typename OrdinalType,
typename ScalarType>
1079 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1082 template<
typename OrdinalType,
typename ScalarType>
1083 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
1085 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1088 template<
typename OrdinalType,
typename ScalarType>
1089 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
1091 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1094 template<
typename OrdinalType,
typename ScalarType>
1095 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
1097 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1100 template<
typename OrdinalType,
typename ScalarType>
1101 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
1103 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1106 template<
typename OrdinalType,
typename ScalarType>
1107 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
1109 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1112 template<
typename OrdinalType,
typename ScalarType>
1113 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
1115 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1118 template<
typename OrdinalType,
typename ScalarType>
1119 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
1121 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1124 template<
typename OrdinalType,
typename ScalarType>
1125 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
1127 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1130 template<
typename OrdinalType,
typename ScalarType>
1131 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
1133 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1136 template<
typename OrdinalType,
typename ScalarType>
1137 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
1139 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1142 template<
typename OrdinalType,
typename ScalarType>
1143 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
1145 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1148 template<
typename OrdinalType,
typename ScalarType>
1149 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
1151 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1154 template<
typename OrdinalType,
typename ScalarType>
1155 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
1157 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1160 template<
typename OrdinalType,
typename ScalarType>
1161 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
1163 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1166 template<
typename OrdinalType,
typename ScalarType>
1167 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
1169 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1172 template<
typename OrdinalType,
typename ScalarType>
1173 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
1175 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1179 template<
typename OrdinalType,
typename ScalarType>
1180 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
1182 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1186 template<
typename OrdinalType,
typename ScalarType>
1187 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
1189 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1193 template<
typename OrdinalType,
typename ScalarType>
1194 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
1196 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1199 template<
typename OrdinalType,
typename ScalarType>
1200 void LAPACK<OrdinalType, ScalarType>::ORMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1202 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1205 template<
typename OrdinalType,
typename ScalarType>
1206 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
1208 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1211 template<
typename OrdinalType,
typename ScalarType>
1212 void LAPACK<OrdinalType, ScalarType>::UNMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1214 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1217 template<
typename OrdinalType,
typename ScalarType>
1218 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
1220 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1223 template<
typename OrdinalType,
typename ScalarType>
1224 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
1226 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1229 template<
typename OrdinalType,
typename ScalarType>
1230 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
1232 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1235 template<
typename OrdinalType,
typename ScalarType>
1236 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
1238 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1241 template<
typename OrdinalType,
typename ScalarType>
1242 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
1244 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1247 template<
typename OrdinalType,
typename ScalarType>
1248 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
1250 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1253 template<
typename OrdinalType,
typename ScalarType>
1254 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
1256 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1259 template<
typename OrdinalType,
typename ScalarType>
1260 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
1262 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1266 template<
typename OrdinalType,
typename ScalarType>
1267 void LAPACK<OrdinalType, ScalarType>::TGEVC(
const char& SIDE,
const char& HOWMNY,
const OrdinalType* SELECT,
const OrdinalType& n,
const ScalarType* S,
const OrdinalType& lds,
const ScalarType* P,
const OrdinalType& ldp, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* M, ScalarType* WORK, OrdinalType* info)
const
1269 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1273 template<
typename OrdinalType,
typename ScalarType>
1276 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1279 template<
typename OrdinalType,
typename ScalarType>
1280 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
1282 return UndefinedLAPACKRoutine<OrdinalType>::notDefined();
1285 template<
typename OrdinalType,
typename ScalarType>
1288 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1291 template<
typename OrdinalType,
typename ScalarType>
1294 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1297 template<
typename OrdinalType,
typename ScalarType>
1300 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1303 template<
typename OrdinalType,
typename ScalarType>
1304 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
1306 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1310 template<
typename OrdinalType,
typename ScalarType>
1311 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
1313 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1316 template<
typename OrdinalType,
typename ScalarType>
1319 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1322 template<
typename OrdinalType,
typename ScalarType>
1325 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1330 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1335 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, float>
1338 inline LAPACK(
void) {}
1339 inline LAPACK(
const LAPACK<int, float>& ) {}
1340 inline virtual ~LAPACK(
void) {}
1343 void PTTRF(
const int& n,
float* d,
float* e,
int* info)
const;
1344 void PTTRS(
const int& n,
const int& nrhs,
const float* d,
const float* e,
float* B,
const int& ldb,
int* info)
const;
1345 void POTRF(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1346 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;
1347 void POTRI(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1348 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;
1349 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float* B,
const int& ldb,
int* info)
const;
1350 void POEQU(
const int& n,
const float* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1351 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const float* A,
const int& lda,
const float* AF,
const int& ldaf,
const float* B,
const int& ldb,
float* X,
const int& ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1353 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;
1356 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;
1357 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;
1358 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;
1359 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;
1360 void GEQRF(
const int& m,
const int& n,
float* A,
const int& lda,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1361 void GEQR2(
const int& m,
const int& n,
float* A,
const int& lda,
float* TAU,
float* WORK,
int*
const info)
const;
1363 void GETRF(
const int& m,
const int& n,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1364 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;
1365 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;
1367 void GEQP3 (
const int& m,
const int& n,
float* A,
const int& lda,
int* jpvt,
float* TAU,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1368 void LASWP (
const int& N,
float* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1370 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1371 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;
1372 void GTTRF(
const int& n,
float* dl,
float* d,
float* du,
float* du2,
int* IPIV,
int* info)
const;
1373 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;
1376 void GETRI(
const int& n,
float* A,
const int& lda,
const int* IPIV,
float* WORK,
const int& lwork,
int* info)
const;
1377 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const float* A,
const int& LDA,
float* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1378 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;
1379 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
const int* IPIV,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1380 float LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
float* WORK)
const;
1381 void GESV(
const int& n,
const int& nrhs,
float* A,
const int& lda,
int* IPIV,
float* B,
const int& ldb,
int* info)
const;
1382 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;
1383 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;
1384 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;
1385 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;
1387 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;
1389 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;
1390 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;
1391 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;
1392 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
float* A,
const int& lda,
int* info)
const;
1395 void STEQR(
const char& COMPZ,
const int& n,
float* D,
float* E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1396 void PTEQR(
const char& COMPZ,
const int& n,
float* D,
float* E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1397 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;
1398 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;
1399 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;
1400 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;
1401 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;
1404 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;
1405 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;
1406 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;
1408 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;
1409 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;
1411 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;
1412 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;
1413 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;
1414 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;
1415 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;
1416 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;
1417 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;
1420 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;
1423 void ORMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1424 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;
1425 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1426 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;
1427 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;
1428 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;
1429 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;
1430 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;
1433 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;
1434 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;
1436 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;
1438 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
const float* S,
const int& lds,
const float* P,
const int& ldp,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
const int& mm,
int* M,
float* WORK,
int* info)
const;
1441 void LARTG(
const float& f,
const float& g,
float* c,
float* s,
float* r )
const;
1442 void LARFG(
const int& n,
float* alpha,
float* x,
const int& incx,
float* tau )
const;
1446 void GEBAL(
const char& JOBZ,
const int& n,
float* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1448 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;
1451 float LARND(
const int& idist,
int* seed )
const;
1452 void LARNV(
const int& idist,
int* seed,
const int& n,
float* v )
const;
1455 float LAMCH(
const char& CMACH)
const;
1456 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;
1459 float LAPY2(
const float& x,
const float& y)
const;
1468 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, double>
1471 inline LAPACK(
void) {}
1472 inline LAPACK(
const LAPACK<int, double>& ) {}
1473 inline virtual ~LAPACK(
void) {}
1476 void PTTRF(
const int& n,
double* d,
double* e,
int* info)
const;
1477 void PTTRS(
const int& n,
const int& nrhs,
const double* d,
const double* e,
double* B,
const int& ldb,
int* info)
const;
1478 void POTRF(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1479 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;
1480 void POTRI(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1481 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;
1482 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double* B,
const int& ldb,
int* info)
const;
1483 void POEQU(
const int& n,
const double* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1484 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
const double* AF,
const int& ldaf,
const double* B,
const int& ldb,
double* X,
const int& ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1486 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;
1489 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;
1490 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;
1491 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;
1492 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;
1493 void GEQRF(
const int& m,
const int& n,
double* A,
const int& lda,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1494 void GEQR2(
const int& m,
const int& n,
double* A,
const int& lda,
double* TAU,
double* WORK,
int*
const info)
const;
1495 void GETRF(
const int& m,
const int& n,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1496 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;
1497 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;
1499 void GEQP3 (
const int& m,
const int& n,
double* A,
const int& lda,
int* jpvt,
double* TAU,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1500 void LASWP (
const int& N,
double* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1502 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1503 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;
1504 void GTTRF(
const int& n,
double* dl,
double* d,
double* du,
double* du2,
int* IPIV,
int* info)
const;
1505 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;
1506 void GETRI(
const int& n,
double* A,
const int& lda,
const int* IPIV,
double* WORK,
const int& lwork,
int* info)
const;
1507 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const double* A,
const int& LDA,
double* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1508 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;
1509 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
const int* IPIV,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1510 double LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
double* WORK)
const;
1511 void GESV(
const int& n,
const int& nrhs,
double* A,
const int& lda,
int* IPIV,
double* B,
const int& ldb,
int* info)
const;
1512 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;
1513 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;
1514 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;
1515 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;
1517 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;
1519 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;
1520 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;
1521 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;
1522 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
double* A,
const int& lda,
int* info)
const;
1525 void STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1526 void PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1527 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;
1528 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;
1529 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;
1530 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;
1531 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;
1534 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;
1535 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;
1536 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;
1538 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;
1539 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;
1541 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;
1542 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;
1543 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;
1544 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;
1545 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;
1546 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;
1547 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;
1551 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;
1554 void ORMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1555 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;
1556 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1557 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;
1558 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;
1559 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;
1560 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;
1561 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;
1564 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;
1565 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;
1567 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;
1569 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
const double* S,
const int& lds,
const double* P,
const int& ldp,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
const int& mm,
int* M,
double* WORK,
int* info)
const;
1572 void LARTG(
const double& f,
const double& g,
double* c,
double* s,
double* r )
const;
1573 void LARFG(
const int& n,
double* alpha,
double* x,
const int& incx,
double* tau )
const;
1577 void GEBAL(
const char& JOBZ,
const int& n,
double* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1579 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;
1582 double LARND(
const int& idist,
int* seed )
const;
1583 void LARNV(
const int& idist,
int* seed,
const int& n,
double* v )
const;
1586 double LAMCH(
const char& CMACH)
const;
1587 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;
1590 double LAPY2(
const double& x,
const double& y)
const;
1596 #ifdef HAVE_TEUCHOS_COMPLEX
1601 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<float> >
1604 inline LAPACK(
void) {}
1605 inline LAPACK(
const LAPACK<
int, std::complex<float> >& lapack) {}
1606 inline virtual ~LAPACK(
void) {}
1609 void PTTRF(
const int& n,
float* d, std::complex<float>* e,
int* info)
const;
1610 void PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const float* d,
const std::complex<float>* e, std::complex<float>* B,
const int& ldb,
int* info)
const;
1611 void POTRF(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1612 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;
1613 void POTRI(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1614 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;
1615 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;
1616 void POEQU(
const int& n,
const std::complex<float>* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1617 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* AF,
const int& ldaf,
const std::complex<float>* B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1619 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;
1622 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;
1623 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;
1624 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;
1625 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;
1626 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;
1627 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* TAU, std::complex<float>* C,
const int& ldc, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1628 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;
1629 void GETRF(
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
int* IPIV,
int* info)
const;
1630 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;
1631 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;
1633 void GEQP3 (
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
int* jpvt, std::complex<float>* TAU, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1634 void LASWP (
const int& N, std::complex<float>* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1636 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;
1637 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;
1638 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;
1639 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;
1640 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;
1641 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const std::complex<float>* A,
const int& LDA, std::complex<float>* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1642 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;
1643 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<float>* A,
const int& lda,
const int* IPIV,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1644 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;
1645 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;
1646 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;
1647 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;
1648 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;
1649 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;
1651 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;
1653 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;
1654 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;
1655 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1658 void STEQR(
const char& COMPZ,
const int& n,
float* D,
float* E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1659 void PTEQR(
const char& COMPZ,
const int& n,
float* D,
float* E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1660 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;
1661 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;
1664 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;
1665 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;
1666 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;
1668 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;
1669 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;
1671 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;
1673 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;
1674 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;
1675 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;
1676 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<float>*, std::complex<float>*),
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* B,
const int& ldb,
int* sdim, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float>* WORK,
const int& lwork,
float* rwork,
int* bwork,
int* info )
const;
1677 void TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* B,
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* Q,
const int& ldq, std::complex<float>* Z,
const int& ldz,
int* M,
float* PL,
float* PR,
float* DIF, std::complex<float>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1680 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;
1683 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;
1684 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;
1686 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;
1689 void LARTG(
const std::complex<float> f,
const std::complex<float> g,
float* c, std::complex<float>* s, std::complex<float>* r )
const;
1690 void LARFG(
const int& n, std::complex<float>* alpha, std::complex<float>* x,
const int& incx, std::complex<float>* tau )
const;
1694 void GEBAL(
const char& JOBZ,
const int& n, std::complex<float>* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1696 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;
1699 std::complex<float> LARND(
const int& idist,
int* seed )
const;
1700 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<float>* v )
const;
1703 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;
1712 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<double> >
1715 inline LAPACK(
void) {}
1716 inline LAPACK(
const LAPACK<
int, std::complex<double> >& lapack) {}
1717 inline virtual ~LAPACK(
void) {}
1720 void PTTRF(
const int& n,
double* d, std::complex<double>* e,
int* info)
const;
1721 void PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* d,
const std::complex<double>* e, std::complex<double>* B,
const int& ldb,
int* info)
const;
1722 void POTRF(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1723 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;
1724 void POTRI(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1725 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;
1726 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;
1727 void POEQU(
const int& n,
const std::complex<double>* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1728 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* AF,
const int& ldaf,
const std::complex<double>* B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1730 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;
1733 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;
1734 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;
1735 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;
1736 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;
1737 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;
1738 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* TAU, std::complex<double>* C,
const int& ldc, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1739 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;
1741 void GETRF(
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1742 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;
1743 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;
1745 void GEQP3 (
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
int* jpvt, std::complex<double>* TAU, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1746 void LASWP (
const int& N, std::complex<double>* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1748 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;
1749 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;
1750 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;
1751 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;
1752 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;
1753 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const std::complex<double>* A,
const int& LDA, std::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1754 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;
1755 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<double>* A,
const int& lda,
const int* IPIV,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1756 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;
1757 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;
1758 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;
1759 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;
1760 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;
1761 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;
1763 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;
1765 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;
1766 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;
1767 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1770 void STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1771 void PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1772 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;
1773 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;
1776 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;
1777 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;
1778 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;
1780 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;
1781 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;
1783 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;
1784 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;
1785 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;
1786 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;
1787 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<double>*, std::complex<double>*),
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* B,
const int& ldb,
int* sdim, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr, std::complex<double>* WORK,
const int& lwork,
double* rwork,
int* bwork,
int* info )
const;
1788 void TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* B,
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* Q,
const int& ldq, std::complex<double>* Z,
const int& ldz,
int* M,
double* PL,
double* PR,
double* DIF, std::complex<double>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1791 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;
1794 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;
1795 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;
1797 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;
1800 void LARTG(
const std::complex<double> f,
const std::complex<double> g,
double* c, std::complex<double>* s, std::complex<double>* r )
const;
1801 void LARFG(
const int& n, std::complex<double>* alpha, std::complex<double>* x,
const int& incx, std::complex<double>* tau )
const;
1805 void GEBAL(
const char& JOBZ,
const int& n, std::complex<double>* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1807 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;
1810 std::complex<double> LARND(
const int& idist,
int* seed )
const;
1811 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<double>* v )
const;
1814 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;
1823 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, Kokkos::complex<double> >
1826 inline LAPACK(
void) {}
1827 inline LAPACK(
const LAPACK<
int, Kokkos::complex<double> >& lapack) {}
1828 inline virtual ~LAPACK(
void) {}
1831 void PTTRF(
const int& n,
double* d, Kokkos::complex<double>* e,
int* info)
const;
1832 void PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* d,
const Kokkos::complex<double>* e, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1833 void POTRF(
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const;
1834 void POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1835 void POTRI(
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const;
1836 void POCON(
const char& UPLO,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1837 void POSV(
const char& UPLO,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1838 void POEQU(
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1839 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1841 void POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* AF,
const int& ldaf,
char* EQUED,
double* S, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1844 void GELS(
const char&
TRANS,
const int& m,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1845 void GELSS(
const int& m,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
double* S,
const double& rcond,
int* rank, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1846 void GEQRF(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1847 void GEQR2(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
int*
const info)
const;
1848 void UNGQR(
const int& m,
const int& n,
const int& k, Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1849 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C,
const int& ldc, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1850 void UNM2R(
const char& SIDE,
const char&
TRANS,
const int& M,
const int& N,
const int& K,
const Kokkos::complex<double>* A,
const int& LDA,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C,
const int& LDC, Kokkos::complex<double>* WORK,
int*
const INFO)
const;
1852 void GETRF(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1853 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1854 void LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const double& cfrom,
const double& cto,
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const;
1856 void GEQP3 (
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* jpvt, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1857 void LASWP (
const int& N, Kokkos::complex<double>* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1859 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku, Kokkos::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1860 void GBTRS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1861 void GTTRF(
const int& n, Kokkos::complex<double>* dl, Kokkos::complex<double>* d, Kokkos::complex<double>* du, Kokkos::complex<double>* du2,
int* IPIV,
int* info)
const;
1862 void GTTRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* dl,
const Kokkos::complex<double>* d,
const Kokkos::complex<double>* du,
const Kokkos::complex<double>* du2,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1863 void GETRI(
const int& n, Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1864 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const Kokkos::complex<double>* A,
const int& LDA, Kokkos::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1865 void GECON(
const char& NORM,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1866 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1867 double LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
double* WORK)
const;
1868 void GESV(
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda,
int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1869 void GEEQU(
const int& m,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1870 void GERFS(
const char&
TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1871 void GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1872 void GBRFS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1874 void GESVX(
const char& FACT,
const char&
TRANS,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
double* R,
double* C, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1876 void GEHRD(
const int& n,
const int& ilo,
const int& ihi, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1877 void TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const;
1878 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const;
1881 void STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, Kokkos::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1882 void PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, Kokkos::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1883 void HEEV(
const char& JOBZ,
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda,
double* W, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1884 void HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
double* W, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1887 void HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi, Kokkos::complex<double>* H,
const int& ldh, Kokkos::complex<double>* W, Kokkos::complex<double>* Z,
const int& ldz, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const;
1888 void GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(std::complex<double>*),
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* sdim, Kokkos::complex<double>* W, Kokkos::complex<double>* VS,
const int& ldvs, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const;
1889 void GEES(
const char& JOBVS,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* sdim,
double* WR,
double* WI, Kokkos::complex<double>* VS,
const int& ldvs, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const;
1891 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1892 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double>* A,
const int& lda,
double* WR,
double* WI, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1894 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* SCALE,
double* abnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1895 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* work,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1896 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
double* ALPHAR,
double* ALPHAI, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* work,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1897 void GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double> *A,
const int& lda, Kokkos::complex<double> *B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>*VR,
const int& ldvr, Kokkos::complex<double> *WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1898 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<double>*, std::complex<double>*),
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* sdim, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* rwork,
int* bwork,
int* info )
const;
1899 void TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* Q,
const int& ldq, Kokkos::complex<double>* Z,
const int& ldz,
int* M,
double* PL,
double* PR,
double* DIF, Kokkos::complex<double>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1902 void GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
double* S, Kokkos::complex<double>* U,
const int& ldu, Kokkos::complex<double>* V,
const int& ldv, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1905 void TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1906 void TREVC(
const char& SIDE,
const int& n,
const Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const;
1908 void TREXC(
const char& COMPQ,
const int& n, Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* Q,
const int& ldq,
int* ifst,
int* ilst, Kokkos::complex<double>* WORK,
int* info)
const;
1911 void LARTG(
const Kokkos::complex<double> f,
const Kokkos::complex<double> g,
double* c, Kokkos::complex<double>* s, Kokkos::complex<double>* r )
const;
1912 void LARFG(
const int& n, Kokkos::complex<double>* alpha, Kokkos::complex<double>* x,
const int& incx, Kokkos::complex<double>* tau )
const;
1916 void GEBAL(
const char& JOBZ,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1918 void GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const double* scale,
const int& m, Kokkos::complex<double>* V,
const int& ldv,
int* info)
const;
1921 Kokkos::complex<double> LARND(
const int& idist,
int* seed )
const;
1922 void LARNV(
const int& idist,
int* seed,
const int& n, Kokkos::complex<double>* v )
const;
1925 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;
1931 #endif // HAVE_TEUCHOS_COMPLEX
1933 #ifdef HAVE_TEUCHOSCORE_QUADMATH
1940 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, __float128>
1943 inline LAPACK(
void) {}
1944 inline LAPACK(
const LAPACK<int, __float128>& lapack) {}
1945 inline virtual ~LAPACK(
void) {}
1947 void GEQRF(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const;
1948 void GEQR2(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
int*
const info)
const;
1949 void GETRF(
const int& m,
const int& n, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1950 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;
1951 void GETRI(
const int& n, __float128* A,
const int& lda,
const int* IPIV, __float128* WORK,
const int& lwork,
int* info)
const;
1952 void LASWP (
const int& N, __float128* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
1954 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;
1955 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;
1956 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;
1958 void LARFG(
const int& n, __float128* alpha, __float128* x,
const int& incx, __float128* tau )
const;
1960 __float128 LAPY2 (
const __float128 x,
const __float128 y)
const;
1961 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;
1963 void GBTRF (
const int& m,
const int& n,
const int& kl,
const int& ku, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1964 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;
1969 #endif // HAVE_TEUCHOSCORE_QUADMATH
1971 #ifdef HAVE_TEUCHOS_LONG_DOUBLE
1978 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, long double>
1981 inline LAPACK(
void) {}
1982 inline LAPACK(
const LAPACK<int, long double>& lapack) {}
1983 inline virtual ~LAPACK(
void) {}
1985 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;
1986 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;
1987 void GTTRF(
const int& n,
long double* dl,
long double* d,
long double* du,
long double* du2,
int* IPIV,
int* info)
const;
1988 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;
1989 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;
1990 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;
1991 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;
1992 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;
1993 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const long double* A,
const int& lda,
const long double* AF,
const int& ldaf,
const long double* B,
const int& ldb,
long double* X,
const int& ldx,
long double* FERR,
long double* BERR,
long double* WORK,
int* IWORK,
int* info)
const;
1994 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;
1995 void POTRF(
const char& UPLO,
const int& n,
long double* A,
const int& lda,
int* info)
const;
1996 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;
1997 void POEQU(
const int& n,
const long double* A,
const int& lda,
long double* S,
long double* scond,
long double* amax,
int* info)
const;
1998 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;
1999 void GEQR2(
const int& m,
const int& n,
long double* A,
const int& lda,
long double* TAU,
long double* WORK,
int*
const info)
const;
2000 void GETRF(
const int& m,
const int& n,
long double* A,
const int& lda,
int* IPIV,
int* info)
const;
2001 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;
2002 void GETRI(
const int& n,
long double* A,
const int& lda,
const int* IPIV,
long double* WORK,
const int& lwork,
int* info)
const;
2003 void LASWP (
const int& N,
long double* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const;
2005 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;
2006 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;
2007 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;
2009 void LARFG(
const int& n,
long double* alpha,
long double* x,
const int& incx,
long double* tau )
const;
2011 long double LAPY2 (
const long double x,
const long double y)
const;
2012 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;
2014 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;
2015 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;
2020 #endif // HAVE_TEUCHOS_LONG_DOUBLE
2022 #endif // DOXYGEN_SHOULD_SKIP_THIS
2026 #endif // _TEUCHOS_LAPACK_HPP_
void TGEVC(const char &SIDE, const char &HOWMNY, const OrdinalType *SELECT, const OrdinalType &n, const ScalarType *S, const OrdinalType &lds, const ScalarType *P, const OrdinalType &ldp, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info) const
void 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 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 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 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 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
T magnitudeType
Mandatory typedef for result of magnitude.
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.
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 GBCON(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general banded real matrix A, in either the 1-norm or the infinity-norm, 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 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 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 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 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 ...
static T squareroot(T x)
Returns a number of magnitudeType that is the square root of this scalar type x.
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 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 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 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 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...
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
void PTTRF(const OrdinalType &n, MagnitudeType *d, ScalarType *e, OrdinalType *info) const
Computes the L*D*L' factorization of a Hermitian/symmetric positive definite tridiagonal matrix A...
void 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 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.
LAPACK(void)
Default Constructor.
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 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 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...
static magnitudeType sfmin()
Returns safe minimum (sfmin), such that 1/sfmin does not overflow.
This structure defines some basic traits for a scalar field type.
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...
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 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 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...
LAPACK(const LAPACK< OrdinalType, ScalarType > &lapack)
Copy Constructor.
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 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 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 LATRS(const char &UPLO, const char &TRANS, const char &DIAG, const char &NORMIN, const OrdinalType &N, const ScalarType *A, const OrdinalType &LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
ScalarType LARND(const OrdinalType &idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
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 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 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
The Templated LAPACK Wrapper Class.
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 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 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 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...
ScalarType LAPY2(const ScalarType &x, const ScalarType &y) const
Computes x^2 + y^2 safely, to avoid overflow.
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 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...
static magnitudeType magnitude(T a)
Returns the magnitudeType of the scalar type a.
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 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 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 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 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...
virtual ~LAPACK(void)
Destructor.
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, the left and/or right eigenvectors.
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 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 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...
Defines basic traits for the scalar field type.
static T zero()
Returns representation of zero for this scalar type.
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 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 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 ORMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
void 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 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 LARNV(const OrdinalType &idist, OrdinalType *seed, const OrdinalType &n, ScalarType *v) const
Returns a vector of random numbers from a chosen 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 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 PTTRS(const OrdinalType &n, const OrdinalType &nrhs, const MagnitudeType *d, const ScalarType *e, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a tridiagonal system A*X=B using the *D*L' factorization of A computed by PTTRF.
void GERFS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations and provides error bounds and backward...
void 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...
ScalarType LAMCH(const char &CMACH) const
Determines machine parameters for floating point characteristics.
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 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 TRTRI(const char &UPLO, const char &DIAG, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
void 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 ...
static T one()
Returns representation of one for this scalar type.
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 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 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 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 UNMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Apply Householder reflectors (complex case).
void 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...