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, ScalarType* d, ScalarType* e, OrdinalType* info)
const;
122 void PTTRS(
const OrdinalType n,
const OrdinalType nrhs,
const ScalarType* 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;
135 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;
138 void POSV(
const char UPLO,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const;
141 void POEQU(
const OrdinalType n,
const ScalarType* A,
const OrdinalType lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const;
144 void PORFS(
const char UPLO,
const OrdinalType n,
const OrdinalType nrhs,
const ScalarType* A,
const OrdinalType lda,
const ScalarType* AF,
const OrdinalType ldaf,
const ScalarType* B,
const OrdinalType ldb, ScalarType* X,
const OrdinalType ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
147 void POSVX(
const char FACT,
const char UPLO,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* AF,
const OrdinalType ldaf,
char EQUED, ScalarType* S, ScalarType* B,
const OrdinalType ldb, ScalarType* X,
const OrdinalType ldx, ScalarType* rcond, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
154 void GELS(
const char TRANS,
const OrdinalType m,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* B,
const OrdinalType ldb, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
189 void GELSS(
const OrdinalType m,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* B,
const OrdinalType ldb, MagnitudeType* S,
const MagnitudeType rcond, OrdinalType* rank, ScalarType* WORK,
const OrdinalType lwork, MagnitudeType* RWORK, OrdinalType* info)
const;
192 void GELSS(
const OrdinalType m,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* B,
const OrdinalType ldb, ScalarType* S,
const ScalarType rcond, OrdinalType* rank, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
195 void GGLSE(
const OrdinalType m,
const OrdinalType n,
const OrdinalType p, ScalarType* A,
const OrdinalType lda, ScalarType* B,
const OrdinalType ldb, ScalarType* C, ScalarType* D, ScalarType* X, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
198 void GEQRF (
const OrdinalType m,
const OrdinalType n, ScalarType* A,
const OrdinalType lda, ScalarType* TAU, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
201 void GEQR2 (
const OrdinalType m,
const OrdinalType n, ScalarType A[],
const OrdinalType lda, ScalarType TAU[], ScalarType WORK[], OrdinalType*
const info)
const;
204 void GETRF(
const OrdinalType m,
const OrdinalType n, ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV, OrdinalType* info)
const;
207 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;
210 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;
214 GEQP3(
const OrdinalType m,
215 const OrdinalType n, ScalarType* A,
216 const OrdinalType lda,
220 const OrdinalType lwork,
221 MagnitudeType* RWORK,
222 OrdinalType* info )
const;
226 LASWP (
const OrdinalType N,
228 const OrdinalType LDA,
229 const OrdinalType K1,
230 const OrdinalType K2,
231 const OrdinalType IPIV[],
232 const OrdinalType INCX)
const;
235 void GBTRF(
const OrdinalType m,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku, ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV, OrdinalType* info)
const;
238 void GBTRS(
const char TRANS,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
const OrdinalType nrhs,
const ScalarType* A,
const OrdinalType lda,
const OrdinalType* IPIV, ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const;
241 void GTTRF(
const OrdinalType n, ScalarType* dl, ScalarType* d, ScalarType* du, ScalarType* du2, OrdinalType* IPIV, OrdinalType* info)
const;
244 void GTTRS(
const char TRANS,
const OrdinalType n,
const OrdinalType nrhs,
const ScalarType* dl,
const ScalarType* d,
const ScalarType* du,
const ScalarType* du2,
const OrdinalType* IPIV, ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const;
247 void GETRI(
const OrdinalType n, ScalarType* A,
const OrdinalType lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
254 LATRS (
const char UPLO,
260 const OrdinalType LDA,
262 MagnitudeType* SCALE,
263 MagnitudeType* CNORM,
264 OrdinalType* INFO)
const;
267 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;
270 void GBCON(
const char NORM,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
const ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV,
const ScalarType anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
276 void GESV(
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV, ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const;
279 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;
282 void GERFS(
const char TRANS,
const OrdinalType n,
const OrdinalType nrhs,
const ScalarType* A,
const OrdinalType lda,
const ScalarType* AF,
const OrdinalType ldaf,
const OrdinalType* IPIV,
const ScalarType* B,
const OrdinalType ldb, ScalarType* X,
const OrdinalType ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
285 void GBEQU(
const OrdinalType m,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
const ScalarType* A,
const OrdinalType lda, MagnitudeType* R, MagnitudeType* C, MagnitudeType* rowcond, MagnitudeType* colcond, MagnitudeType* amax, OrdinalType* info)
const;
288 void GBRFS(
const char TRANS,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
const OrdinalType nrhs,
const ScalarType* A,
const OrdinalType lda,
const ScalarType* AF,
const OrdinalType ldaf,
const OrdinalType* IPIV,
const ScalarType* B,
const OrdinalType ldb, ScalarType* X,
const OrdinalType ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
291 void GESVX(
const char FACT,
const char TRANS,
const OrdinalType n,
const OrdinalType nrhs, ScalarType* A,
const OrdinalType lda, ScalarType* AF,
const OrdinalType ldaf, OrdinalType* IPIV,
char EQUED, ScalarType* R, ScalarType* C, ScalarType* B,
const OrdinalType ldb, ScalarType* X,
const OrdinalType ldx, ScalarType* rcond, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
296 void 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;
299 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;
302 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;
305 void TRTRI(
const char UPLO,
const char DIAG,
const OrdinalType n,
const ScalarType* A,
const OrdinalType lda, OrdinalType* info)
const;
313 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;
318 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;
323 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;
328 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;
333 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;
336 void STEQR(
const char COMPZ,
const OrdinalType n, ScalarType* D, ScalarType* E, ScalarType* Z,
const OrdinalType ldz, ScalarType* WORK, OrdinalType* info)
const;
341 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;
347 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;
352 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;
357 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;
364 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;
370 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;
376 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;
381 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;
387 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;
393 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;
399 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;
406 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;
423 void ORMQR(
const char SIDE,
const char TRANS,
const OrdinalType m,
const OrdinalType n,
const OrdinalType k, ScalarType* A,
const OrdinalType lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType ldc, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
430 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;
440 void UNMQR(
const char SIDE,
const char TRANS,
const OrdinalType m,
const OrdinalType n,
const OrdinalType k, ScalarType* A,
const OrdinalType lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType ldc, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const;
446 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;
457 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;
467 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;
472 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;
477 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;
485 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;
490 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;
495 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;
500 void TGEVC(
const char SIDE,
const char HOWMNY,
const OrdinalType *SELECT,
const OrdinalType n, ScalarType *S,
const OrdinalType lds, ScalarType *P,
const OrdinalType ldp, ScalarType *VL,
const OrdinalType ldvl, ScalarType *VR,
const OrdinalType ldvr,
const OrdinalType mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info)
const;
509 void LARTG(
const ScalarType f,
const ScalarType g, MagnitudeType* c, ScalarType* s, ScalarType* r )
const;
512 void LARFG(
const OrdinalType n, ScalarType* alpha, ScalarType* x,
const OrdinalType incx, ScalarType* tau )
const;
520 void GEBAL(
const char JOBZ,
const OrdinalType n, ScalarType* A,
const OrdinalType lda, OrdinalType ilo, OrdinalType ihi, MagnitudeType* scale, OrdinalType* info)
const;
523 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;
529 ScalarType
LARND(
const OrdinalType idist, OrdinalType* seed )
const;
533 void LARNV(
const OrdinalType idist, OrdinalType* seed,
const OrdinalType n, ScalarType* v )
const;
541 ScalarType
LAMCH(
const char CMACH)
const;
547 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;
555 ScalarType
LAPY2(
const ScalarType x,
const ScalarType y)
const;
564 template<
typename OrdinalType,
typename ScalarType>
567 UndefinedLAPACKRoutine<ScalarType>::notDefined();
570 template<
typename OrdinalType,
typename ScalarType>
571 void LAPACK<OrdinalType, ScalarType>::PTTRS(
const OrdinalType n,
const OrdinalType nrhs,
const ScalarType* d,
const ScalarType* e, ScalarType* B,
const OrdinalType ldb, OrdinalType* info)
const 573 UndefinedLAPACKRoutine<ScalarType>::notDefined();
576 template<
typename OrdinalType,
typename ScalarType>
579 UndefinedLAPACKRoutine<ScalarType>::notDefined();
582 template<
typename OrdinalType,
typename ScalarType>
583 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 585 UndefinedLAPACKRoutine<ScalarType>::notDefined();
588 template<
typename OrdinalType,
typename ScalarType>
591 UndefinedLAPACKRoutine<ScalarType>::notDefined();
594 template<
typename OrdinalType,
typename ScalarType>
595 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 597 UndefinedLAPACKRoutine<ScalarType>::notDefined();
600 template<
typename OrdinalType,
typename ScalarType>
601 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 603 UndefinedLAPACKRoutine<ScalarType>::notDefined();
606 template<
typename OrdinalType,
typename ScalarType>
607 void LAPACK<OrdinalType, ScalarType>::POEQU(
const OrdinalType n,
const ScalarType* A,
const OrdinalType lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const 613 }
else if (lda < TEUCHOS_MAX(1, n)) {
634 MagnitudeType smin = S[0];
636 for (OrdinalType i=0; i<n; ++i) {
638 smin = TEUCHOS_MIN( smin, S[i] );
639 *amax = TEUCHOS_MAX( *amax, S[i] );
644 for (OrdinalType i=0; i<n; ++i) {
650 for (OrdinalType i=0; i<n; ++i) {
658 template<
typename OrdinalType,
typename ScalarType>
659 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 661 UndefinedLAPACKRoutine<ScalarType>::notDefined();
664 template<
typename OrdinalType,
typename ScalarType>
665 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 667 UndefinedLAPACKRoutine<ScalarType>::notDefined();
670 template<
typename OrdinalType,
typename ScalarType>
671 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 673 UndefinedLAPACKRoutine<ScalarType>::notDefined();
676 template<
typename OrdinalType,
typename ScalarType>
677 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 679 UndefinedLAPACKRoutine<ScalarType>::notDefined();
682 template<
typename OrdinalType,
typename ScalarType>
683 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 685 UndefinedLAPACKRoutine<ScalarType>::notDefined();
688 template<
typename OrdinalType,
typename ScalarType>
689 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 691 UndefinedLAPACKRoutine<ScalarType>::notDefined();
694 template<
typename OrdinalType,
typename ScalarType>
695 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 697 UndefinedLAPACKRoutine<ScalarType>::notDefined();
700 template<
typename OrdinalType,
typename ScalarType>
701 void LAPACK<OrdinalType,ScalarType>::GEQR2 (
const OrdinalType m,
const OrdinalType n, ScalarType A[],
const OrdinalType lda, ScalarType TAU[], ScalarType WORK[], OrdinalType*
const info)
const 703 UndefinedLAPACKRoutine<ScalarType>::notDefined();
706 template<
typename OrdinalType,
typename ScalarType>
709 UndefinedLAPACKRoutine<ScalarType>::notDefined();
712 template<
typename OrdinalType,
typename ScalarType>
713 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 715 UndefinedLAPACKRoutine<ScalarType>::notDefined();
718 template<
typename OrdinalType,
typename ScalarType>
719 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 735 MagnitudeType cfromc = cfrom;
736 MagnitudeType ctoc = cto;
737 MagnitudeType cfrom1;
742 cfrom1 = cfromc*smlnum;
743 if (cfrom1 == cfromc) {
749 cto1 = ctoc / bignum;
769 for (j=0; j<n; j++) {
771 for (i=0; i<m; i++) { *ptr = mul * (*ptr); ptr++; }
777 template<
typename OrdinalType,
typename ScalarType>
780 GEQP3 (
const OrdinalType m,
783 const OrdinalType lda,
787 const OrdinalType lwork,
788 MagnitudeType* RWORK,
789 OrdinalType* info)
const 791 UndefinedLAPACKRoutine<ScalarType>::notDefined();
794 template<
typename OrdinalType,
typename ScalarType>
797 LASWP (
const OrdinalType N,
799 const OrdinalType LDA,
800 const OrdinalType K1,
801 const OrdinalType K2,
802 const OrdinalType IPIV[],
803 const OrdinalType INCX)
const 805 UndefinedLAPACKRoutine<ScalarType>::notDefined();
808 template<
typename OrdinalType,
typename ScalarType>
809 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 811 UndefinedLAPACKRoutine<ScalarType>::notDefined();
814 template<
typename OrdinalType,
typename ScalarType>
815 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 817 UndefinedLAPACKRoutine<ScalarType>::notDefined();
820 template<
typename OrdinalType,
typename ScalarType>
823 UndefinedLAPACKRoutine<ScalarType>::notDefined();
826 template<
typename OrdinalType,
typename ScalarType>
827 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 829 UndefinedLAPACKRoutine<ScalarType>::notDefined();
832 template<
typename OrdinalType,
typename ScalarType>
833 void LAPACK<OrdinalType,ScalarType>::GETRI(
const OrdinalType n, ScalarType* A,
const OrdinalType lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const 835 UndefinedLAPACKRoutine<ScalarType>::notDefined();
838 template<
typename OrdinalType,
typename ScalarType>
841 LATRS (
const char UPLO,
847 const OrdinalType LDA,
849 MagnitudeType* SCALE,
850 MagnitudeType* CNORM,
851 OrdinalType* INFO)
const 853 UndefinedLAPACKRoutine<ScalarType>::notDefined();
856 template<
typename OrdinalType,
typename ScalarType>
857 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 859 UndefinedLAPACKRoutine<ScalarType>::notDefined();
862 template<
typename OrdinalType,
typename ScalarType>
863 void LAPACK<OrdinalType,ScalarType>::GBCON(
const char NORM,
const OrdinalType n,
const OrdinalType kl,
const OrdinalType ku,
const ScalarType* A,
const OrdinalType lda, OrdinalType* IPIV,
const ScalarType anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const 865 UndefinedLAPACKRoutine<ScalarType>::notDefined();
868 template<
typename OrdinalType,
typename ScalarType>
871 UndefinedLAPACKRoutine<ScalarType>::notDefined();
874 template<
typename OrdinalType,
typename ScalarType>
875 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 877 UndefinedLAPACKRoutine<ScalarType>::notDefined();
880 template<
typename OrdinalType,
typename ScalarType>
881 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 890 }
else if (lda < TEUCHOS_MAX(1, m)) {
903 if (m == 0 || n == 0) {
915 for (OrdinalType i=0; i<m; i++) {
920 for (OrdinalType j=0; j<n; j++) {
921 for (OrdinalType i=0; i<m; i++) {
927 MagnitudeType rcmin = bignum;
928 MagnitudeType rcmax = mZero;
929 for (OrdinalType i=0; i<m; i++) {
930 rcmax = TEUCHOS_MAX( rcmax, R[i] );
931 rcmin = TEUCHOS_MIN( rcmin, R[i] );
935 if (rcmin == mZero) {
937 for (OrdinalType i=0; i<m; i++) {
943 for (OrdinalType i=0; i<m; i++) {
944 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
947 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
951 for (OrdinalType j=0; j<n; j++) {
956 for (OrdinalType j=0; j<n; j++) {
957 for (OrdinalType i=0; i<m; i++) {
965 for (OrdinalType j=0; j<n; j++) {
966 rcmax = TEUCHOS_MAX( rcmax, C[j] );
967 rcmin = TEUCHOS_MIN( rcmin, C[j] );
970 if (rcmin == mZero) {
972 for (OrdinalType j=0; j<n; j++) {
978 for (OrdinalType j=0; j<n; j++) {
979 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
982 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
986 template<
typename OrdinalType,
typename ScalarType>
987 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 989 UndefinedLAPACKRoutine<ScalarType>::notDefined();
992 template<
typename OrdinalType,
typename ScalarType>
993 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 1002 }
else if (kl < 0) {
1004 }
else if (ku < 0) {
1006 }
else if (lda < kl+ku+1) {
1019 if (m == 0 || n == 0) {
1031 for (OrdinalType i=0; i<m; i++) {
1036 for (OrdinalType j=0; j<n; j++) {
1037 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
1043 MagnitudeType rcmin = bignum;
1044 MagnitudeType rcmax = mZero;
1045 for (OrdinalType i=0; i<m; i++) {
1046 rcmax = TEUCHOS_MAX( rcmax, R[i] );
1047 rcmin = TEUCHOS_MIN( rcmin, R[i] );
1051 if (rcmin == mZero) {
1053 for (OrdinalType i=0; i<m; i++) {
1059 for (OrdinalType i=0; i<m; i++) {
1060 R[i] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( R[i], smlnum ), bignum );
1063 *rowcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1067 for (OrdinalType j=0; j<n; j++) {
1072 for (OrdinalType j=0; j<n; j++) {
1073 for (OrdinalType i=TEUCHOS_MAX(j-ku,0); i<TEUCHOS_MIN(j+kl,m-1); i++) {
1081 for (OrdinalType j=0; j<n; j++) {
1082 rcmax = TEUCHOS_MAX( rcmax, C[j] );
1083 rcmin = TEUCHOS_MIN( rcmin, C[j] );
1086 if (rcmin == mZero) {
1088 for (OrdinalType j=0; j<n; j++) {
1094 for (OrdinalType j=0; j<n; j++) {
1095 C[j] = mOne / TEUCHOS_MIN( TEUCHOS_MAX( C[j], smlnum ), bignum );
1098 *colcond = TEUCHOS_MAX( rcmin, smlnum ) / TEUCHOS_MIN( rcmax, bignum );
1102 template<
typename OrdinalType,
typename ScalarType>
1103 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 1105 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1108 template<
typename OrdinalType,
typename ScalarType>
1109 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 1111 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1114 template<
typename OrdinalType,
typename ScalarType>
1115 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 1117 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1120 template<
typename OrdinalType,
typename ScalarType>
1121 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 1123 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1126 template<
typename OrdinalType,
typename ScalarType>
1127 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 1129 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1132 template<
typename OrdinalType,
typename ScalarType>
1135 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1138 template<
typename OrdinalType,
typename ScalarType>
1139 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 1141 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1144 template<
typename OrdinalType,
typename ScalarType>
1145 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 1147 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1150 template<
typename OrdinalType,
typename ScalarType>
1151 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 1153 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1156 template<
typename OrdinalType,
typename ScalarType>
1157 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 1159 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1162 template<
typename OrdinalType,
typename ScalarType>
1163 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 1165 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1168 template<
typename OrdinalType,
typename ScalarType>
1169 void LAPACK<OrdinalType,ScalarType>::STEQR(
const char COMPZ,
const OrdinalType n, ScalarType* D, ScalarType* E, ScalarType* Z,
const OrdinalType ldz, ScalarType* WORK, OrdinalType* info)
const 1171 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1174 template<
typename OrdinalType,
typename ScalarType>
1175 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 1177 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1180 template<
typename OrdinalType,
typename ScalarType>
1181 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 1183 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1186 template<
typename OrdinalType,
typename ScalarType>
1187 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 1189 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1192 template<
typename OrdinalType,
typename ScalarType>
1193 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 1195 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1198 template<
typename OrdinalType,
typename ScalarType>
1199 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 1201 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1204 template<
typename OrdinalType,
typename ScalarType>
1205 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 1207 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1210 template<
typename OrdinalType,
typename ScalarType>
1211 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 1213 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1216 template<
typename OrdinalType,
typename ScalarType>
1217 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 1219 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1222 template<
typename OrdinalType,
typename ScalarType>
1223 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 1225 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1229 template<
typename OrdinalType,
typename ScalarType>
1230 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 1232 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1236 template<
typename OrdinalType,
typename ScalarType>
1237 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 1239 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1243 template<
typename OrdinalType,
typename ScalarType>
1244 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 1246 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1249 template<
typename OrdinalType,
typename ScalarType>
1250 void LAPACK<OrdinalType, ScalarType>::ORMQR(
const char SIDE,
const char TRANS,
const OrdinalType m,
const OrdinalType n,
const OrdinalType k, ScalarType* A,
const OrdinalType lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType ldc, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const 1252 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1255 template<
typename OrdinalType,
typename ScalarType>
1256 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 1258 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1261 template<
typename OrdinalType,
typename ScalarType>
1262 void LAPACK<OrdinalType, ScalarType>::UNMQR(
const char SIDE,
const char TRANS,
const OrdinalType m,
const OrdinalType n,
const OrdinalType k, ScalarType* A,
const OrdinalType lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType ldc, ScalarType* WORK,
const OrdinalType lwork, OrdinalType* info)
const 1264 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1267 template<
typename OrdinalType,
typename ScalarType>
1268 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 1270 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1273 template<
typename OrdinalType,
typename ScalarType>
1274 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 1276 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1279 template<
typename OrdinalType,
typename ScalarType>
1280 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 1282 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1285 template<
typename OrdinalType,
typename ScalarType>
1286 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 1288 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1291 template<
typename OrdinalType,
typename ScalarType>
1292 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 1294 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1297 template<
typename OrdinalType,
typename ScalarType>
1298 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 1300 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1303 template<
typename OrdinalType,
typename ScalarType>
1304 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 1306 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1309 template<
typename OrdinalType,
typename ScalarType>
1310 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 1312 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1316 template<
typename OrdinalType,
typename ScalarType>
1317 void LAPACK<OrdinalType, ScalarType>::TGEVC(
const char SIDE,
const char HOWMNY,
const OrdinalType *SELECT,
const OrdinalType n, ScalarType *S,
const OrdinalType lds, ScalarType *P,
const OrdinalType ldp, ScalarType *VL,
const OrdinalType ldvl, ScalarType *VR,
const OrdinalType ldvr,
const OrdinalType mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info)
const 1319 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1323 template<
typename OrdinalType,
typename ScalarType>
1326 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1329 template<
typename OrdinalType,
typename ScalarType>
1330 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 1332 return UndefinedLAPACKRoutine<OrdinalType>::notDefined();
1335 template<
typename OrdinalType,
typename ScalarType>
1338 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1341 template<
typename OrdinalType,
typename ScalarType>
1344 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1347 template<
typename OrdinalType,
typename ScalarType>
1350 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1353 template<
typename OrdinalType,
typename ScalarType>
1354 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 1356 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1360 template<
typename OrdinalType,
typename ScalarType>
1361 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 1363 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1366 template<
typename OrdinalType,
typename ScalarType>
1369 return UndefinedLAPACKRoutine<ScalarType>::notDefined();
1372 template<
typename OrdinalType,
typename ScalarType>
1375 UndefinedLAPACKRoutine<ScalarType>::notDefined();
1380 #ifndef DOXYGEN_SHOULD_SKIP_THIS 1385 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, float>
1388 inline LAPACK(
void) {}
1389 inline LAPACK(
const LAPACK<int, float>& lapack) {}
1390 inline virtual ~LAPACK(
void) {}
1393 void POTRF(
const char UPLO,
const int n,
float* A,
const int lda,
int * info)
const;
1394 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;
1395 void PTTRF(
const int n,
float* d,
float* e,
int* info)
const;
1396 void PTTRS(
const int n,
const int nrhs,
const float* d,
const float* e,
float* B,
const int ldb,
int* info)
const;
1397 void POTRI(
const char UPLO,
const int n,
float* A,
const int lda,
int* info)
const;
1398 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;
1399 void POSV(
const char UPLO,
const int n,
const int nrhs,
float* A,
const int lda,
float* B,
const int ldb,
int* info)
const;
1400 void POEQU(
const int n,
const float* A,
const int lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1401 void PORFS(
const char UPLO,
const int n,
const int nrhs,
float* A,
const int lda,
const float* AF,
const int ldaf,
const float* B,
const int ldb,
float* X,
const int ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1402 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;
1405 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;
1406 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;
1407 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;
1408 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;
1409 void GEQRF(
const int m,
const int n,
float* A,
const int lda,
float* TAU,
float* WORK,
const int lwork,
int* info)
const;
1410 void GEQR2(
const int m,
const int n,
float A[],
const int lda,
float TAU[],
float WORK[],
int*
const info)
const;
1412 void GETRF(
const int m,
const int n,
float* A,
const int lda,
int* IPIV,
int* info)
const;
1413 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;
1414 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;
1428 void LASWP (
const int N,
1434 const int INCX)
const;
1436 void GBTRF(
const int m,
const int n,
const int kl,
const int ku,
float* A,
const int lda,
int* IPIV,
int* info)
const;
1437 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;
1438 void GTTRF(
const int n,
float* dl,
float* d,
float* du,
float* du2,
int* IPIV,
int* info)
const;
1439 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;
1442 void GETRI(
const int n,
float* A,
const int lda,
const int* IPIV,
float* WORK,
const int lwork,
int* info)
const;
1443 void LATRS (
const char UPLO,
const char TRANS,
const char DIAG,
const char NORMIN,
const int N,
float* A,
const int LDA,
float* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1444 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;
1445 void GBCON(
const char NORM,
const int n,
const int kl,
const int ku,
const float* A,
const int lda,
int* IPIV,
const float anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1446 float LANGB(
const char NORM,
const int n,
const int kl,
const int ku,
const float* A,
const int lda,
float* WORK)
const;
1447 void GESV(
const int n,
const int nrhs,
float* A,
const int lda,
int* IPIV,
float* B,
const int ldb,
int* info)
const;
1448 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;
1449 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;
1450 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;
1451 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;
1452 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;
1453 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;
1454 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;
1455 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;
1456 void TRTRI(
const char UPLO,
const char DIAG,
const int n,
const float* A,
const int lda,
int* info)
const;
1459 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;
1460 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;
1461 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;
1462 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;
1463 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;
1464 void STEQR(
const char COMPZ,
const int n,
float* D,
float* E,
float* Z,
const int ldz,
float* WORK,
int* info)
const;
1467 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;
1468 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;
1469 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;
1471 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;
1472 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;
1474 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;
1475 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;
1476 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;
1477 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;
1478 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;
1479 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;
1480 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;
1483 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;
1486 void ORMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k,
float* A,
const int lda,
const float* TAU,
float* C,
const int ldc,
float* WORK,
const int lwork,
int* info)
const;
1487 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;
1488 void UNMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k,
float* A,
const int lda,
const float* TAU,
float* C,
const int ldc,
float* WORK,
const int lwork,
int* info)
const;
1489 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;
1490 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;
1491 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;
1492 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;
1493 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;
1496 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;
1497 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;
1498 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;
1499 void TGEVC(
const char SIDE,
const char HOWMNY,
const int *SELECT,
const int n,
float *S,
const int lds,
float *P,
const int ldp,
float *VL,
const int ldvl,
float *VR,
const int ldvr,
const int mm,
int *M,
float *WORK,
int *info)
const;
1502 void LARTG(
const float f,
const float g,
float* c,
float* s,
float* r )
const;
1503 void LARFG(
const int n,
float* alpha,
float* x,
const int incx,
float* tau )
const;
1506 void GEBAL(
const char JOBZ,
const int n,
float* A,
const int lda,
int ilo,
int ihi,
float* scale,
int* info)
const;
1507 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;
1510 float LARND(
const int idist,
int* seed )
const;
1511 void LARNV(
const int idist,
int* seed,
const int n,
float* v )
const;
1514 float LAMCH(
const char CMACH)
const;
1515 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;
1518 float LAPY2(
const float x,
const float y)
const;
1527 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, double>
1530 inline LAPACK(
void) {}
1531 inline LAPACK(
const LAPACK<int, double>& lapack) {}
1532 inline virtual ~LAPACK(
void) {}
1535 void PTTRF(
const int n,
double* d,
double* e,
int* info)
const;
1536 void PTTRS(
const int n,
const int nrhs,
const double* d,
const double* e,
double* B,
const int ldb,
int* info)
const;
1537 void POTRF(
const char UPLO,
const int n,
double* A,
const int lda,
int* info)
const;
1538 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;
1539 void POTRI(
const char UPLO,
const int n,
double* A,
const int lda,
int* info)
const;
1540 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;
1541 void POSV(
const char UPLO,
const int n,
const int nrhs,
double* A,
const int lda,
double* B,
const int ldb,
int* info)
const;
1542 void POEQU(
const int n,
const double* A,
const int lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1543 void PORFS(
const char UPLO,
const int n,
const int nrhs,
double* A,
const int lda,
const double* AF,
const int ldaf,
const double* B,
const int ldb,
double* X,
const int ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1544 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;
1547 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;
1548 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;
1549 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;
1550 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;
1551 void GEQRF(
const int m,
const int n,
double* A,
const int lda,
double* TAU,
double* WORK,
const int lwork,
int* info)
const;
1552 void GEQR2(
const int m,
const int n,
double A[],
const int lda,
double TAU[],
double WORK[],
int*
const info)
const;
1553 void GETRF(
const int m,
const int n,
double* A,
const int lda,
int* IPIV,
int* info)
const;
1554 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;
1555 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;
1569 void LASWP (
const int N,
1575 const int INCX)
const;
1577 void GBTRF(
const int m,
const int n,
const int kl,
const int ku,
double* A,
const int lda,
int* IPIV,
int* info)
const;
1578 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;
1579 void GTTRF(
const int n,
double* dl,
double* d,
double* du,
double* du2,
int* IPIV,
int* info)
const;
1580 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;
1581 void GETRI(
const int n,
double* A,
const int lda,
const int* IPIV,
double* WORK,
const int lwork,
int* info)
const;
1582 void LATRS (
const char UPLO,
const char TRANS,
const char DIAG,
const char NORMIN,
const int N,
double* A,
const int LDA,
double* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1583 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;
1584 void GBCON(
const char NORM,
const int n,
const int kl,
const int ku,
const double* A,
const int lda,
int* IPIV,
const double anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1585 double LANGB(
const char NORM,
const int n,
const int kl,
const int ku,
const double* A,
const int lda,
double* WORK)
const;
1586 void GESV(
const int n,
const int nrhs,
double* A,
const int lda,
int* IPIV,
double* B,
const int ldb,
int* info)
const;
1587 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;
1588 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;
1589 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;
1590 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;
1591 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;
1592 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;
1593 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;
1594 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;
1595 void TRTRI(
const char UPLO,
const char DIAG,
const int n,
const double* A,
const int lda,
int* info)
const;
1598 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;
1599 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;
1600 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;
1601 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;
1602 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;
1603 void STEQR(
const char COMPZ,
const int n,
double* D,
double* E,
double* Z,
const int ldz,
double* WORK,
int* info)
const;
1606 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;
1607 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;
1608 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;
1610 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;
1611 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;
1613 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;
1614 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;
1615 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;
1616 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;
1617 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;
1618 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;
1619 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;
1623 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;
1626 void ORMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k,
double* A,
const int lda,
const double* TAU,
double* C,
const int ldc,
double* WORK,
const int lwork,
int* info)
const;
1627 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;
1628 void UNMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k,
double* A,
const int lda,
const double* TAU,
double* C,
const int ldc,
double* WORK,
const int lwork,
int* info)
const;
1629 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;
1630 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;
1631 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;
1632 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;
1633 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;
1636 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;
1637 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;
1638 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;
1639 void TGEVC(
const char SIDE,
const char HOWMNY,
const int *SELECT,
const int n,
double *S,
const int lds,
double *P,
const int ldp,
double *VL,
const int ldvl,
double *VR,
const int ldvr,
const int mm,
int *M,
double *WORK,
int *info)
const;
1642 void LARTG(
const double f,
const double g,
double* c,
double* s,
double* r )
const;
1643 void LARFG(
const int n,
double* alpha,
double* x,
const int incx,
double* tau )
const;
1646 void GEBAL(
const char JOBZ,
const int n,
double* A,
const int lda,
int ilo,
int ihi,
double* scale,
int* info)
const;
1647 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;
1650 double LARND(
const int idist,
int* seed )
const;
1651 void LARNV(
const int idist,
int* seed,
const int n,
double* v )
const;
1654 double LAMCH(
const char CMACH)
const;
1655 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;
1658 double LAPY2(
const double x,
const double y)
const;
1664 #ifdef HAVE_TEUCHOS_COMPLEX 1669 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<float> >
1672 inline LAPACK(
void) {}
1673 inline LAPACK(
const LAPACK<
int, std::complex<float> >& lapack) {}
1674 inline virtual ~LAPACK(
void) {}
1677 void PTTRF(
const int n, std::complex<float>* d, std::complex<float>* e,
int* info)
const;
1678 void PTTRS(
const int n,
const int nrhs,
const std::complex<float>* d,
const std::complex<float>* e, std::complex<float>* B,
const int ldb,
int* info)
const;
1679 void POTRF(
const char UPLO,
const int n, std::complex<float>* A,
const int lda,
int* info)
const;
1680 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;
1681 void POTRI(
const char UPLO,
const int n, std::complex<float>* A,
const int lda,
int* info)
const;
1682 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;
1683 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;
1684 void POEQU(
const int n,
const std::complex<float>* A,
const int lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1685 void PORFS(
const char UPLO,
const int n,
const int nrhs, std::complex<float>* A,
const int lda,
const std::complex<float>* AF,
const int ldaf,
const std::complex<float>* B,
const int ldb, std::complex<float>* X,
const int ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1686 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;
1689 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;
1690 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;
1691 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;
1692 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;
1693 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;
1694 void UNMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k, std::complex<float>* A,
const int lda,
const std::complex<float>* TAU, std::complex<float>* C,
const int ldc, std::complex<float>* WORK,
const int lwork,
int* info)
const;
1695 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;
1696 void GETRF(
const int m,
const int n, std::complex<float>* A,
const int lda,
int* IPIV,
int* info)
const;
1697 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;
1698 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;
1703 std::complex<float>* A,
1706 std::complex<float>* TAU,
1707 std::complex<float>* WORK,
1712 void LASWP (
const int N,
1713 std::complex<float> A[],
1718 const int INCX)
const;
1720 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;
1721 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;
1722 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;
1723 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;
1724 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;
1725 void LATRS (
const char UPLO,
const char TRANS,
const char DIAG,
const char NORMIN,
const int N, std::complex<float>* A,
const int LDA, std::complex<float>* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1726 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;
1727 void GBCON(
const char NORM,
const int n,
const int kl,
const int ku,
const std::complex<float>* A,
const int lda,
int* IPIV,
const float anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1728 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;
1729 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;
1730 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;
1731 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;
1732 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;
1733 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;
1734 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;
1735 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;
1736 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;
1737 void TRTRI(
const char UPLO,
const char DIAG,
const int n,
const std::complex<float>* A,
const int lda,
int* info)
const;
1740 void STEQR(
const char COMPZ,
const int n,
float* D,
float* E, std::complex<float>* Z,
const int ldz,
float* WORK,
int* info)
const;
1741 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;
1742 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;
1745 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;
1746 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;
1747 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;
1749 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;
1750 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;
1752 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;
1754 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;
1755 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;
1756 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;
1759 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;
1762 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;
1763 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;
1764 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;
1767 void LARTG(
const std::complex<float> f,
const std::complex<float> g,
float* c, std::complex<float>* s, std::complex<float>* r )
const;
1768 void LARFG(
const int n, std::complex<float>* alpha, std::complex<float>* x,
const int incx, std::complex<float>* tau )
const;
1771 void GEBAL(
const char JOBZ,
const int n, std::complex<float>* A,
const int lda,
int ilo,
int ihi,
float* scale,
int* info)
const;
1772 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;
1775 std::complex<float> LARND(
const int idist,
int* seed )
const;
1776 void LARNV(
const int idist,
int* seed,
const int n, std::complex<float>* v )
const;
1779 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;
1788 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, std::complex<double> >
1791 inline LAPACK(
void) {}
1792 inline LAPACK(
const LAPACK<
int, std::complex<double> >& lapack) {}
1793 inline virtual ~LAPACK(
void) {}
1796 void PTTRF(
const int n, std::complex<double>* d, std::complex<double>* e,
int* info)
const;
1797 void PTTRS(
const int n,
const int nrhs,
const std::complex<double>* d,
const std::complex<double>* e, std::complex<double>* B,
const int ldb,
int* info)
const;
1798 void POTRF(
const char UPLO,
const int n, std::complex<double>* A,
const int lda,
int* info)
const;
1799 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;
1800 void POTRI(
const char UPLO,
const int n, std::complex<double>* A,
const int lda,
int* info)
const;
1801 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;
1802 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;
1803 void POEQU(
const int n,
const std::complex<double>* A,
const int lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1804 void PORFS(
const char UPLO,
const int n,
const int nrhs, std::complex<double>* A,
const int lda,
const std::complex<double>* AF,
const int ldaf,
const std::complex<double>* B,
const int ldb, std::complex<double>* X,
const int ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1805 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;
1808 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;
1809 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;
1810 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;
1811 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;
1812 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;
1813 void UNMQR(
const char SIDE,
const char TRANS,
const int m,
const int n,
const int k, std::complex<double>* A,
const int lda,
const std::complex<double>* TAU, std::complex<double>* C,
const int ldc, std::complex<double>* WORK,
const int lwork,
int* info)
const;
1814 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;
1816 void GETRF(
const int m,
const int n, std::complex<double>* A,
const int lda,
int* IPIV,
int* info)
const;
1817 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;
1818 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;
1823 std::complex<double>* A,
1826 std::complex<double>* TAU,
1827 std::complex<double>* WORK,
1832 void LASWP (
const int N,
1833 std::complex<double> A[],
1838 const int INCX)
const;
1840 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;
1841 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;
1842 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;
1843 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;
1844 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;
1845 void LATRS (
const char UPLO,
const char TRANS,
const char DIAG,
const char NORMIN,
const int N, std::complex<double>* A,
const int LDA, std::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1846 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;
1847 void GBCON(
const char NORM,
const int n,
const int kl,
const int ku,
const std::complex<double>* A,
const int lda,
int* IPIV,
const double anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1848 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;
1849 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;
1850 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;
1851 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;
1852 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;
1853 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;
1854 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;
1855 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;
1856 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;
1857 void TRTRI(
const char UPLO,
const char DIAG,
const int n,
const std::complex<double>* A,
const int lda,
int* info)
const;
1860 void STEQR(
const char COMPZ,
const int n,
double* D,
double* E, std::complex<double>* Z,
const int ldz,
double* WORK,
int* info)
const;
1861 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;
1862 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;
1865 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;
1866 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;
1867 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;
1869 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;
1870 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;
1872 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;
1873 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;
1874 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;
1875 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;
1878 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;
1881 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;
1882 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;
1883 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;
1886 void LARTG(
const std::complex<double> f,
const std::complex<double> g,
double* c, std::complex<double>* s, std::complex<double>* r )
const;
1887 void LARFG(
const int n, std::complex<double>* alpha, std::complex<double>* x,
const int incx, std::complex<double>* tau )
const;
1890 void GEBAL(
const char JOBZ,
const int n, std::complex<double>* A,
const int lda,
int ilo,
int ihi,
double* scale,
int* info)
const;
1891 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;
1894 std::complex<double> LARND(
const int idist,
int* seed )
const;
1895 void LARNV(
const int idist,
int* seed,
const int n, std::complex<double>* v )
const;
1898 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;
1904 #endif // HAVE_TEUCHOS_COMPLEX 1906 #ifdef HAVE_TEUCHOSCORE_QUADMATH 1913 class TEUCHOSNUMERICS_LIB_DLL_EXPORT LAPACK<int, __float128>
1916 inline LAPACK(
void) {}
1917 inline LAPACK(
const LAPACK<int, __float128>& lapack) {}
1918 inline virtual ~LAPACK(
void) {}
1920 void GEQRF(
const int m,
const int n, __float128* A,
const int lda, __float128* TAU, __float128* WORK,
const int lwork,
int* info)
const;
1921 void GEQR2(
const int m,
const int n, __float128 A[],
const int lda, __float128 TAU[], __float128 WORK[],
int*
const info)
const;
1922 void GETRF(
const int m,
const int n, __float128* A,
const int lda,
int* IPIV,
int* info)
const;
1923 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;
1924 void GETRI(
const int n, __float128* A,
const int lda,
const int* IPIV, __float128* WORK,
const int lwork,
int* info)
const;
1925 void LASWP (
const int N, __float128 A[],
const int LDA,
const int K1,
const int K2,
const int IPIV[],
const int INCX)
const;
1927 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;
1928 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;
1929 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;
1931 void LARFG(
const int n, __float128* alpha, __float128* x,
const int incx, __float128* tau )
const;
1933 __float128 LAPY2 (
const __float128 x,
const __float128 y)
const;
1934 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;
1936 void GBTRF (
const int m,
const int n,
const int kl,
const int ku, __float128* A,
const int lda,
int* IPIV,
int* info)
const;
1937 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;
1942 #endif // HAVE_TEUCHOSCORE_QUADMATH 1944 #endif // DOXYGEN_SHOULD_SKIP_THIS 1948 #endif // _TEUCHOS_LAPACK_HPP_ 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 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 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 GESV(const OrdinalType n, const OrdinalType nrhs, ScalarType *A, const OrdinalType lda, OrdinalType *IPIV, ScalarType *B, const OrdinalType ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is factored through GETRF a...
void GBCON(const char NORM, const OrdinalType n, const OrdinalType kl, const OrdinalType ku, const ScalarType *A, const OrdinalType lda, OrdinalType *IPIV, const ScalarType anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general banded real matrix A, in either the 1-norm or the infinity-norm, using the LU factorization computed by GETRF.
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 ...
ScalarType LAPY2(const ScalarType x, const ScalarType y) const
Computes x^2 + y^2 safely, to avoid overflow.
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...
T magnitudeType
Mandatory typedef for result of magnitude.
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 GBEQU(const OrdinalType m, const OrdinalType n, const OrdinalType kl, const OrdinalType ku, const ScalarType *A, const OrdinalType lda, MagnitudeType *R, MagnitudeType *C, MagnitudeType *rowcond, MagnitudeType *colcond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n banded matrix A and reduce its con...
void ORMQR(const char SIDE, const char TRANS, const OrdinalType m, const OrdinalType n, const OrdinalType k, ScalarType *A, const OrdinalType lda, const ScalarType *TAU, ScalarType *C, const OrdinalType ldc, ScalarType *WORK, const OrdinalType lwork, OrdinalType *info) const
void 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 TGEVC(const char SIDE, const char HOWMNY, const OrdinalType *SELECT, const OrdinalType n, ScalarType *S, const OrdinalType lds, ScalarType *P, const OrdinalType ldp, ScalarType *VL, const OrdinalType ldvl, ScalarType *VR, const OrdinalType ldvr, const OrdinalType mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info) const
void 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 PTTRS(const OrdinalType n, const OrdinalType nrhs, const ScalarType *d, const ScalarType *e, ScalarType *B, const OrdinalType ldb, OrdinalType *info) const
Solves a tridiagonal system A*X=B using the *D*L' factorization of A computed by PTTRF.
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 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.
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.
static T squareroot(T x)
Returns a number of magnitudeType that is the square root of this scalar type x.
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 GGEVX(const char BALANC, const char JOBVL, const char JOBVR, const char SENSE, const OrdinalType n, ScalarType *A, const OrdinalType lda, ScalarType *B, const OrdinalType ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType ldvl, ScalarType *VR, const OrdinalType ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *lscale, MagnitudeType *rscale, MagnitudeType *abnrm, MagnitudeType *bbnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType lwork, OrdinalType *IWORK, OrdinalType *BWORK, OrdinalType *info) const
void GEHRD(const OrdinalType n, const OrdinalType ilo, const OrdinalType ihi, ScalarType *A, const OrdinalType lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType lwork, OrdinalType *info) const
Reduces a real general matrix A to upper Hessenberg form by orthogonal similarity transformations...
void 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...
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
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 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 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...
LAPACK(void)
Default Constructor.
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).
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 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 ...
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 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 TREXC(const char COMPQ, const OrdinalType n, ScalarType *T, const OrdinalType ldt, ScalarType *Q, const OrdinalType ldq, OrdinalType ifst, OrdinalType ilst, ScalarType *WORK, OrdinalType *info) const
void 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 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 GEQP3(const OrdinalType m, const OrdinalType n, ScalarType *A, const OrdinalType lda, OrdinalType *jpvt, ScalarType *TAU, ScalarType *WORK, const OrdinalType lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS...
void GECON(const char NORM, const OrdinalType n, const ScalarType *A, const OrdinalType lda, const ScalarType anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general real matrix A, in either the 1-norm or ...
void 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 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 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 LAMCH(const char CMACH) const
Determines machine parameters for floating point characteristics.
LAPACK(const LAPACK< OrdinalType, ScalarType > &lapack)
Copy Constructor.
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 UNM2R(const char SIDE, const char TRANS, const OrdinalType M, const OrdinalType N, const OrdinalType K, const ScalarType A[], const OrdinalType LDA, const ScalarType TAU[], ScalarType C[], const OrdinalType LDC, ScalarType WORK[], OrdinalType *const INFO) const
BLAS 2 version of UNMQR; known workspace size.
void LARNV(const OrdinalType idist, OrdinalType *seed, const OrdinalType n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
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 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 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 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.
The Templated LAPACK Wrapper Class.
void STEQR(const char COMPZ, const OrdinalType n, ScalarType *D, ScalarType *E, ScalarType *Z, const OrdinalType ldz, ScalarType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal n by n matrix A usi...
void 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 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 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 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 PTTRF(const OrdinalType n, ScalarType *d, ScalarType *e, OrdinalType *info) const
Computes the L*D*L' factorization of a Hermitian/symmetric positive definite tridiagonal matrix A...
void 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 TRTRI(const char UPLO, const char DIAG, const OrdinalType n, const ScalarType *A, const OrdinalType lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
void 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 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 UNMQR(const char SIDE, const char TRANS, const OrdinalType m, const OrdinalType n, const OrdinalType k, ScalarType *A, const OrdinalType lda, const ScalarType *TAU, ScalarType *C, const OrdinalType ldc, ScalarType *WORK, const OrdinalType lwork, OrdinalType *info) const
Apply Householder reflectors (complex case).
static magnitudeType magnitude(T a)
Returns the magnitudeType of the scalar type a.
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 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 LATRS(const char UPLO, const char TRANS, const char DIAG, const char NORMIN, const OrdinalType N, ScalarType *A, const OrdinalType LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos, as well as a number of utility routines.
virtual ~LAPACK(void)
Destructor.
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 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 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 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...
Defines basic traits for the scalar field type.
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...
static T zero()
Returns representation of zero for this scalar type.
void GTTRS(const char TRANS, const OrdinalType n, const OrdinalType nrhs, const ScalarType *dl, const ScalarType *d, const ScalarType *du, const ScalarType *du2, const OrdinalType *IPIV, ScalarType *B, const OrdinalType ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B or A^H*X=B with a tridiagonal matrix A using the ...
void SYTRD(const char UPLO, const OrdinalType n, ScalarType *A, const OrdinalType lda, ScalarType *D, ScalarType *E, ScalarType *TAU, ScalarType *WORK, const OrdinalType lwork, OrdinalType *info) const
Reduces a real symmetric matrix A to tridiagonal form by orthogonal similarity transformations.
void 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 ORMHR(const char SIDE, const char TRANS, const OrdinalType m, const OrdinalType n, const OrdinalType ilo, const OrdinalType ihi, const ScalarType *A, const OrdinalType lda, const ScalarType *TAU, ScalarType *C, const OrdinalType ldc, ScalarType *WORK, const OrdinalType lwork, OrdinalType *info) const
Overwrites the general real m by n matrix C with the product of C and Q, which is a product of ihi-il...
void 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...
static T one()
Returns representation of one for this scalar type.
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 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 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...
ScalarType LARND(const OrdinalType idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
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 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...