42 #ifndef _TEUCHOS_LAPACK_HPP_
43 #define _TEUCHOS_LAPACK_HPP_
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;
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,
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,
258 const OrdinalType& N,
260 const OrdinalType& LDA,
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;
292 void GESVX(
const char& FACT,
const char&
TRANS,
const OrdinalType&
n,
const OrdinalType& nrhs, ScalarType*
A,
const OrdinalType& lda, ScalarType* AF,
const OrdinalType& ldaf, OrdinalType* IPIV,
char* EQUED, ScalarType* R, ScalarType*
C, ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* rcond, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const;
297 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;
300 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;
303 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;
306 void TRTRI(
const char& UPLO,
const char& DIAG,
const OrdinalType&
n,
const ScalarType*
A,
const OrdinalType& lda, OrdinalType* info)
const;
314 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;
319 void SYEV(
const char& JOBZ,
const char& UPLO,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType* W, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
324 void SYGV(
const OrdinalType& itype,
const char& JOBZ,
const char& UPLO,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, ScalarType* W, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
329 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;
334 void HEGV(
const OrdinalType& itype,
const char& JOBZ,
const char& UPLO,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb,
MagnitudeType* W, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType *RWORK, OrdinalType* info)
const;
345 void HSEQR(
const char& JOB,
const char& COMPZ,
const OrdinalType&
n,
const OrdinalType& ilo,
const OrdinalType& ihi, ScalarType* H,
const OrdinalType& ldh, ScalarType* WR, ScalarType* WI, ScalarType* Z,
const OrdinalType& ldz, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
351 void GEES(
const char& JOBVS,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType*, ScalarType*),
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, OrdinalType* sdim, ScalarType* WR, ScalarType* WI, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* BWORK, OrdinalType* info)
const;
356 void GEES(
const char& JOBVS,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType*),
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, OrdinalType* sdim, ScalarType* W, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType* RWORK, OrdinalType* BWORK, OrdinalType* info)
const;
361 void GEES(
const char& JOBVS,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, OrdinalType* sdim,
MagnitudeType* WR,
MagnitudeType* WI, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType* RWORK, OrdinalType* BWORK, OrdinalType* info)
const;
368 void GEEV(
const char& JOBVL,
const char& JOBVR,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda,
MagnitudeType* WR,
MagnitudeType* WI, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType* RWORK, OrdinalType* info)
const;
374 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType* WR, ScalarType* WI, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, OrdinalType* ilo, OrdinalType* ihi,
MagnitudeType* SCALE,
MagnitudeType* abnrm,
MagnitudeType* RCONDE,
MagnitudeType* RCONDV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK, OrdinalType* info)
const;
380 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb,
MagnitudeType* ALPHAR,
MagnitudeType* ALPHAI, ScalarType* BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, OrdinalType* ilo, OrdinalType* ihi,
MagnitudeType* lscale,
MagnitudeType* rscale,
MagnitudeType* abnrm,
MagnitudeType* bbnrm,
MagnitudeType* RCONDE,
MagnitudeType* RCONDV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK, OrdinalType* BWORK, OrdinalType* info)
const;
385 void GGEV(
const char& JOBVL,
const char& JOBVR,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb,
MagnitudeType *ALPHAR,
MagnitudeType *ALPHAI, ScalarType* BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
391 void TRSEN(
const char& JOB,
const char& COMPQ,
const OrdinalType* SELECT,
const OrdinalType&
n, ScalarType* T,
const OrdinalType& ldt, ScalarType* Q,
const OrdinalType& ldq,
MagnitudeType *WR,
MagnitudeType *WI, OrdinalType* M, ScalarType* S,
MagnitudeType *SEP, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK,
const OrdinalType& liwork, OrdinalType* info )
const;
397 void TGSEN(
const OrdinalType& ijob,
const OrdinalType& wantq,
const OrdinalType& wantz,
const OrdinalType* SELECT,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb,
MagnitudeType *ALPHAR,
MagnitudeType *ALPHAI,
MagnitudeType *BETA, ScalarType* Q,
const OrdinalType& ldq, ScalarType* Z,
const OrdinalType& ldz, OrdinalType* M,
MagnitudeType *PL,
MagnitudeType *PR,
MagnitudeType *DIF, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK,
const OrdinalType& liwork, OrdinalType* info )
const;
403 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType* , ScalarType* , ScalarType* ),
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* sdim,
MagnitudeType *ALPHAR,
MagnitudeType *ALPHAI,
MagnitudeType *BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* BWORK, OrdinalType* info )
const;
410 void GESVD(
const char& JOBU,
const char& JOBVT,
const OrdinalType& m,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda,
MagnitudeType* S, ScalarType* U,
const OrdinalType& ldu, ScalarType* V,
const OrdinalType& ldv, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType* RWORK, OrdinalType* info)
const;
427 void ORMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType&
n,
const OrdinalType& k, ScalarType*
A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType*
C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
434 void ORM2R(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType&
n,
const OrdinalType& k,
const ScalarType
A[],
const OrdinalType& lda,
const ScalarType TAU[], ScalarType
C[],
const OrdinalType& ldc, ScalarType WORK[], OrdinalType*
const info)
const;
444 void UNMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType&
n,
const OrdinalType& k, ScalarType*
A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType*
C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
450 void UNM2R(
const char& SIDE,
const char&
TRANS,
const OrdinalType& M,
const OrdinalType& N,
const OrdinalType& K,
const ScalarType
A[],
const OrdinalType& LDA,
const ScalarType TAU[], ScalarType
C[],
const OrdinalType& LDC, ScalarType WORK[], OrdinalType*
const INFO)
const;
461 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;
471 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;
476 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;
481 void ORMHR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType&
n,
const OrdinalType& ilo,
const OrdinalType& ihi,
const ScalarType*
A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType*
C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const;
489 void TREVC(
const char& SIDE,
const char& HOWMNY, OrdinalType* select,
const OrdinalType&
n,
const ScalarType* T,
const OrdinalType& ldt, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* m, ScalarType* WORK, OrdinalType* info)
const;
494 void TREVC(
const char& SIDE,
const OrdinalType&
n,
const ScalarType* T,
const OrdinalType& ldt, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* m, ScalarType* WORK,
MagnitudeType* RWORK, OrdinalType* info)
const;
499 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;
504 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const OrdinalType* SELECT,
const OrdinalType&
n, ScalarType* S,
const OrdinalType& lds, ScalarType* P,
const OrdinalType& ldp, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* M, ScalarType* WORK, OrdinalType* info)
const;
513 void LARTG(
const ScalarType&
f,
const ScalarType&
g,
MagnitudeType* c, ScalarType* s, ScalarType* r )
const;
516 void LARFG(
const OrdinalType&
n, ScalarType* alpha, ScalarType* x,
const OrdinalType& incx, ScalarType* tau )
const;
525 void GEBAL(
const char& JOBZ,
const OrdinalType&
n, ScalarType*
A,
const OrdinalType& lda, OrdinalType* ilo, OrdinalType* ihi,
MagnitudeType* scale, OrdinalType* info)
const;
528 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;
534 ScalarType
LARND(
const OrdinalType& idist, OrdinalType* seed )
const;
538 void LARNV(
const OrdinalType& idist, OrdinalType* seed,
const OrdinalType&
n, ScalarType* v )
const;
546 ScalarType
LAMCH(
const char& CMACH)
const;
552 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;
560 ScalarType
LAPY2(
const ScalarType& x,
const ScalarType& y)
const;
569 template<
typename OrdinalType,
typename ScalarType>
575 template<
typename OrdinalType,
typename ScalarType>
576 void LAPACK<OrdinalType, ScalarType>::PTTRS(
const OrdinalType&
n,
const OrdinalType& nrhs,
const ScalarType* d,
const ScalarType* e, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
581 template<
typename OrdinalType,
typename ScalarType>
587 template<
typename OrdinalType,
typename ScalarType>
588 void LAPACK<OrdinalType, ScalarType>::POTRS(
const char& UPLO,
const OrdinalType&
n,
const OrdinalType& nrhs,
const ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
593 template<
typename OrdinalType,
typename ScalarType>
599 template<
typename OrdinalType,
typename ScalarType>
600 void LAPACK<OrdinalType, ScalarType>::POCON(
const char& UPLO,
const OrdinalType&
n,
const ScalarType*
A,
const OrdinalType& lda,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
605 template<
typename OrdinalType,
typename ScalarType>
606 void LAPACK<OrdinalType, ScalarType>::POSV(
const char& UPLO,
const OrdinalType&
n,
const OrdinalType& nrhs, ScalarType*
A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
611 template<
typename OrdinalType,
typename ScalarType>
612 void LAPACK<OrdinalType, ScalarType>::POEQU(
const OrdinalType&
n,
const ScalarType*
A,
const OrdinalType& lda, MagnitudeType* S, MagnitudeType* scond, MagnitudeType* amax, OrdinalType* info)
const
639 MagnitudeType smin = S[0];
641 for (OrdinalType i=0; i<
n; ++i) {
649 for (OrdinalType i=0; i<
n; ++i) {
655 for (OrdinalType i=0; i<
n; ++i) {
663 template<
typename OrdinalType,
typename ScalarType>
664 void LAPACK<OrdinalType, ScalarType>::PORFS(
const char& UPLO,
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* AF,
const OrdinalType& ldaf,
const ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
669 template<
typename OrdinalType,
typename ScalarType>
670 void LAPACK<OrdinalType, ScalarType>::POSVX(
const char& FACT,
const char& UPLO,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType* AF,
const OrdinalType& ldaf,
char* EQUED, ScalarType* S, ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* rcond, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
675 template<
typename OrdinalType,
typename ScalarType>
676 void LAPACK<OrdinalType,ScalarType>::GELS(
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
681 template<
typename OrdinalType,
typename ScalarType>
682 void LAPACK<OrdinalType, ScalarType>::GELSS(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb,
MagnitudeType* S,
const MagnitudeType rcond, OrdinalType* rank, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType* RWORK, OrdinalType* info)
const
687 template<
typename OrdinalType,
typename ScalarType>
688 void LAPACK<OrdinalType,ScalarType>::GELSS(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, ScalarType* S,
const ScalarType& rcond, OrdinalType* rank, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
693 template<
typename OrdinalType,
typename ScalarType>
694 void LAPACK<OrdinalType,ScalarType>::GGLSE(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& p, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, ScalarType*
C, ScalarType*
D, ScalarType* X, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
699 template<
typename OrdinalType,
typename ScalarType>
700 void LAPACK<OrdinalType,ScalarType>::GEQRF(
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
705 template<
typename OrdinalType,
typename ScalarType>
706 void LAPACK<OrdinalType,ScalarType>::GEQR2 (
const OrdinalType& m,
const OrdinalType& n, ScalarType A[],
const OrdinalType& lda, ScalarType TAU[], ScalarType WORK[], OrdinalType*
const info)
const
711 template<
typename OrdinalType,
typename ScalarType>
717 template<
typename OrdinalType,
typename ScalarType>
718 void LAPACK<OrdinalType,ScalarType>::GETRS(
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
723 template<
typename OrdinalType,
typename ScalarType>
724 void LAPACK<OrdinalType,ScalarType>::LASCL(
const char& TYPE,
const OrdinalType& kl,
const OrdinalType& ku,
const MagnitudeType cfrom,
const MagnitudeType cto,
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* info)
const
740 MagnitudeType cfromc = cfrom;
741 MagnitudeType ctoc = cto;
742 MagnitudeType cfrom1;
747 cfrom1 = cfromc*smlnum;
748 if (cfrom1 == cfromc) {
754 cto1 = ctoc / bignum;
774 for (j=0; j<
n; j++) {
776 for (i=0; i<m; i++) { *ptr = mul * (*ptr); ptr++; }
782 template<
typename OrdinalType,
typename ScalarType>
785 GEQP3 (
const OrdinalType& m,
786 const OrdinalType& n,
788 const OrdinalType& lda,
792 const OrdinalType& lwork,
793 MagnitudeType* RWORK,
794 OrdinalType* info)
const
799 template<
typename OrdinalType,
typename ScalarType>
802 LASWP (
const OrdinalType& N,
804 const OrdinalType& LDA,
805 const OrdinalType& K1,
806 const OrdinalType& K2,
807 const OrdinalType IPIV[],
808 const OrdinalType& INCX)
const
813 template<
typename OrdinalType,
typename ScalarType>
814 void LAPACK<OrdinalType,ScalarType>::GBTRF(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku, ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV, OrdinalType* info)
const
819 template<
typename OrdinalType,
typename ScalarType>
820 void LAPACK<OrdinalType,ScalarType>::GBTRS(
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
825 template<
typename OrdinalType,
typename ScalarType>
831 template<
typename OrdinalType,
typename ScalarType>
832 void LAPACK<OrdinalType,ScalarType>::GTTRS(
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* dl,
const ScalarType* d,
const ScalarType* du,
const ScalarType* du2,
const OrdinalType* IPIV, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
837 template<
typename OrdinalType,
typename ScalarType>
838 void LAPACK<OrdinalType,ScalarType>::GETRI(
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda,
const OrdinalType* IPIV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
843 template<
typename OrdinalType,
typename ScalarType>
846 LATRS (
const char& UPLO,
850 const OrdinalType& N,
852 const OrdinalType& LDA,
854 MagnitudeType* SCALE,
855 MagnitudeType* CNORM,
856 OrdinalType* INFO)
const
861 template<
typename OrdinalType,
typename ScalarType>
862 void LAPACK<OrdinalType,ScalarType>::GECON(
const char& NORM,
const OrdinalType& n,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
867 template<
typename OrdinalType,
typename ScalarType>
868 void LAPACK<OrdinalType,ScalarType>::GBCON(
const char& NORM,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV,
const ScalarType& anorm, ScalarType* rcond, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
873 template<
typename OrdinalType,
typename ScalarType>
879 template<
typename OrdinalType,
typename ScalarType>
880 void LAPACK<OrdinalType,ScalarType>::GESV(
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, OrdinalType* IPIV, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
885 template<
typename OrdinalType,
typename ScalarType>
886 void LAPACK<OrdinalType,ScalarType>::GEEQU(
const OrdinalType& m,
const OrdinalType& n,
const ScalarType* A,
const OrdinalType& lda, ScalarType* R, ScalarType*
C, ScalarType* rowcond, ScalarType* colcond, ScalarType* amax, OrdinalType* info)
const
908 if (m == 0 || n == 0) {
920 for (OrdinalType i=0; i<m; i++) {
925 for (OrdinalType j=0; j<
n; j++) {
926 for (OrdinalType i=0; i<m; i++) {
932 MagnitudeType rcmin = bignum;
933 MagnitudeType rcmax = mZero;
934 for (OrdinalType i=0; i<m; i++) {
940 if (rcmin == mZero) {
942 for (OrdinalType i=0; i<m; i++) {
948 for (OrdinalType i=0; i<m; i++) {
956 for (OrdinalType j=0; j<
n; j++) {
961 for (OrdinalType j=0; j<
n; j++) {
962 for (OrdinalType i=0; i<m; i++) {
970 for (OrdinalType j=0; j<
n; j++) {
975 if (rcmin == mZero) {
977 for (OrdinalType j=0; j<
n; j++) {
983 for (OrdinalType j=0; j<
n; j++) {
991 template<
typename OrdinalType,
typename ScalarType>
992 void LAPACK<OrdinalType,ScalarType>::GERFS(
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* AF,
const OrdinalType& ldaf,
const OrdinalType* IPIV,
const ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
997 template<
typename OrdinalType,
typename ScalarType>
998 void LAPACK<OrdinalType,ScalarType>::GBEQU(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const ScalarType* A,
const OrdinalType& lda, MagnitudeType* R, MagnitudeType* C, MagnitudeType* rowcond, MagnitudeType* colcond, MagnitudeType* amax, OrdinalType* info)
const
1007 }
else if (kl < 0) {
1009 }
else if (ku < 0) {
1011 }
else if (lda < kl+ku+1) {
1024 if (m == 0 || n == 0) {
1036 for (OrdinalType i=0; i<m; i++) {
1041 for (OrdinalType j=0; j<
n; j++) {
1048 MagnitudeType rcmin = bignum;
1049 MagnitudeType rcmax = mZero;
1050 for (OrdinalType i=0; i<m; i++) {
1056 if (rcmin == mZero) {
1058 for (OrdinalType i=0; i<m; i++) {
1064 for (OrdinalType i=0; i<m; i++) {
1072 for (OrdinalType j=0; j<
n; j++) {
1077 for (OrdinalType j=0; j<
n; j++) {
1086 for (OrdinalType j=0; j<
n; j++) {
1091 if (rcmin == mZero) {
1093 for (OrdinalType j=0; j<
n; j++) {
1099 for (OrdinalType j=0; j<
n; j++) {
1107 template<
typename OrdinalType,
typename ScalarType>
1108 void LAPACK<OrdinalType,ScalarType>::GBRFS(
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& kl,
const OrdinalType& ku,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* AF,
const OrdinalType& ldaf,
const OrdinalType* IPIV,
const ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
1113 template<
typename OrdinalType,
typename ScalarType>
1114 void LAPACK<OrdinalType,ScalarType>::GESVX(
const char& FACT,
const char&
TRANS,
const OrdinalType& n,
const OrdinalType& nrhs, ScalarType* A,
const OrdinalType& lda, ScalarType* AF,
const OrdinalType& ldaf, OrdinalType* IPIV,
char* EQUED, ScalarType* R, ScalarType* C, ScalarType*
B,
const OrdinalType& ldb, ScalarType* X,
const OrdinalType& ldx, ScalarType* rcond, ScalarType* FERR, ScalarType* BERR, ScalarType* WORK, OrdinalType* IWORK, OrdinalType* info)
const
1119 template<
typename OrdinalType,
typename ScalarType>
1120 void LAPACK<OrdinalType,ScalarType>::SYTRD(
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
D, ScalarType*
E, ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1125 template<
typename OrdinalType,
typename ScalarType>
1126 void LAPACK<OrdinalType,ScalarType>::GEHRD(
const OrdinalType& n,
const OrdinalType& ilo,
const OrdinalType& ihi, ScalarType* A,
const OrdinalType& lda, ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1131 template<
typename OrdinalType,
typename ScalarType>
1132 void LAPACK<OrdinalType,ScalarType>::TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const OrdinalType& n,
const OrdinalType& nrhs,
const ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* info)
const
1137 template<
typename OrdinalType,
typename ScalarType>
1143 template<
typename OrdinalType,
typename ScalarType>
1144 void LAPACK<OrdinalType,ScalarType>::SPEV(
const char& JOBZ,
const char& UPLO,
const OrdinalType& n, ScalarType* AP, ScalarType* W, ScalarType* Z,
const OrdinalType& ldz, ScalarType* WORK, OrdinalType* info)
const
1149 template<
typename OrdinalType,
typename ScalarType>
1150 void LAPACK<OrdinalType,ScalarType>::SYEV(
const char& JOBZ,
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* W, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1155 template<
typename OrdinalType,
typename ScalarType>
1156 void LAPACK<OrdinalType,ScalarType>::SYGV(
const OrdinalType& itype,
const char& JOBZ,
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, ScalarType* W, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1161 template<
typename OrdinalType,
typename ScalarType>
1162 void LAPACK<OrdinalType,ScalarType>::HEEV(
const char& JOBZ,
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, MagnitudeType* W, ScalarType* WORK,
const OrdinalType& lwork, MagnitudeType* RWORK, OrdinalType* info)
const
1167 template<
typename OrdinalType,
typename ScalarType>
1168 void LAPACK<OrdinalType,ScalarType>::HEGV(
const OrdinalType& itype,
const char& JOBZ,
const char& UPLO,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, MagnitudeType* W, ScalarType* WORK,
const OrdinalType& lwork, MagnitudeType* RWORK, OrdinalType* info)
const
1173 template<
typename OrdinalType,
typename ScalarType>
1174 void LAPACK<OrdinalType,ScalarType>::STEQR(
const char& COMPZ,
const OrdinalType& n, MagnitudeType*
D, MagnitudeType*
E, ScalarType* Z,
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
const
1179 template<
typename OrdinalType,
typename ScalarType>
1180 void LAPACK<OrdinalType,ScalarType>::PTEQR(
const char& COMPZ,
const OrdinalType& n, MagnitudeType*
D, MagnitudeType*
E, ScalarType* Z,
const OrdinalType& ldz, MagnitudeType* WORK, OrdinalType* info)
const
1185 template<
typename OrdinalType,
typename ScalarType>
1186 void LAPACK<OrdinalType, ScalarType>::HSEQR(
const char& JOB,
const char& COMPZ,
const OrdinalType& n,
const OrdinalType& ilo,
const OrdinalType& ihi, ScalarType* H,
const OrdinalType& ldh, ScalarType* WR, ScalarType* WI, ScalarType* Z,
const OrdinalType& ldz, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1191 template<
typename OrdinalType,
typename ScalarType>
1192 void LAPACK<OrdinalType, ScalarType>::GEES(
const char& JOBVS,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType*, ScalarType*),
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* sdim, ScalarType* WR, ScalarType* WI, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* BWORK, OrdinalType* info)
const
1197 template<
typename OrdinalType,
typename ScalarType>
1198 void LAPACK<OrdinalType, ScalarType>::GEES(
const char& JOBVS,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType*),
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* sdim, ScalarType* W, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType *RWORK, OrdinalType* BWORK, OrdinalType* info)
const
1203 template<
typename OrdinalType,
typename ScalarType>
1204 void LAPACK<OrdinalType, ScalarType>::GEES(
const char& JOBVS,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* sdim,
MagnitudeType* WR,
MagnitudeType* WI, ScalarType* VS,
const OrdinalType& ldvs, ScalarType* WORK,
const OrdinalType& lwork,
MagnitudeType *RWORK, OrdinalType* BWORK, OrdinalType* info)
const
1209 template<
typename OrdinalType,
typename ScalarType>
1210 void LAPACK<OrdinalType, ScalarType>::GEEV(
const char& JOBVL,
const char& JOBVR,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, MagnitudeType* WR, MagnitudeType* WI, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork, MagnitudeType* rwork, OrdinalType* info)
const
1215 template<
typename OrdinalType,
typename ScalarType>
1216 void LAPACK<OrdinalType, ScalarType>::GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType* WR, ScalarType* WI, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, OrdinalType* ilo, OrdinalType* ihi, MagnitudeType* SCALE, MagnitudeType* abnrm, MagnitudeType* RCONDE, MagnitudeType* RCONDV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK, OrdinalType* info)
const
1221 template<
typename OrdinalType,
typename ScalarType>
1222 void LAPACK<OrdinalType, ScalarType>::GESVD(
const char& JOBU,
const char& JOBVT,
const OrdinalType& m,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, MagnitudeType* S, ScalarType* U,
const OrdinalType& ldu, ScalarType* V,
const OrdinalType& ldv, ScalarType* WORK,
const OrdinalType& lwork, MagnitudeType* RWORK, OrdinalType* info)
const
1227 template<
typename OrdinalType,
typename ScalarType>
1228 void LAPACK<OrdinalType, ScalarType>::GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, MagnitudeType* ALPHAR, MagnitudeType* ALPHAI, ScalarType* BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, OrdinalType* ilo, OrdinalType* ihi, MagnitudeType* lscale, MagnitudeType* rscale, MagnitudeType* abnrm, MagnitudeType* bbnrm, MagnitudeType* RCONDE, MagnitudeType* RCONDV, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK, OrdinalType* BWORK, OrdinalType* info)
const
1233 template<
typename OrdinalType,
typename ScalarType>
1234 void LAPACK<OrdinalType, ScalarType>::GGEV(
const char& JOBVL,
const char& JOBVR,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType* BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1240 template<
typename OrdinalType,
typename ScalarType>
1241 void LAPACK<OrdinalType,ScalarType>::TRSEN(
const char& JOB,
const char& COMPQ,
const OrdinalType* SELECT,
const OrdinalType& n, ScalarType* T,
const OrdinalType& ldt, ScalarType* Q,
const OrdinalType& ldq, MagnitudeType *WR, MagnitudeType *WI, OrdinalType* M, ScalarType* S, MagnitudeType *SEP, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK,
const OrdinalType& liwork, OrdinalType* info )
const
1247 template<
typename OrdinalType,
typename ScalarType>
1248 void LAPACK<OrdinalType,ScalarType>::TGSEN(
const OrdinalType& ijob,
const OrdinalType& wantq,
const OrdinalType& wantz,
const OrdinalType* SELECT,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType* Q,
const OrdinalType& ldq, ScalarType* Z,
const OrdinalType& ldz, OrdinalType* M, MagnitudeType *PL, MagnitudeType *PR, MagnitudeType *DIF, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* IWORK,
const OrdinalType& liwork, OrdinalType* info )
const
1254 template<
typename OrdinalType,
typename ScalarType>
1255 void LAPACK<OrdinalType, ScalarType>::GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT, OrdinalType& (*ptr2func)(ScalarType*, ScalarType*, ScalarType*),
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, ScalarType*
B,
const OrdinalType& ldb, OrdinalType* sdim, MagnitudeType* ALPHAR, MagnitudeType* ALPHAI, MagnitudeType* BETA, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* BWORK, OrdinalType* info )
const
1260 template<
typename OrdinalType,
typename ScalarType>
1261 void LAPACK<OrdinalType, ScalarType>::ORMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1266 template<
typename OrdinalType,
typename ScalarType>
1267 void LAPACK<OrdinalType, ScalarType>::ORM2R(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k,
const ScalarType A[],
const OrdinalType& lda,
const ScalarType TAU[], ScalarType C[],
const OrdinalType& ldc, ScalarType WORK[], OrdinalType*
const info)
const
1272 template<
typename OrdinalType,
typename ScalarType>
1273 void LAPACK<OrdinalType, ScalarType>::UNMQR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1278 template<
typename OrdinalType,
typename ScalarType>
1279 void LAPACK<OrdinalType, ScalarType>::UNM2R(
const char& SIDE,
const char&
TRANS,
const OrdinalType& M,
const OrdinalType& N,
const OrdinalType& K,
const ScalarType A[],
const OrdinalType& LDA,
const ScalarType TAU[], ScalarType C[],
const OrdinalType& LDC, ScalarType WORK[], OrdinalType*
const INFO)
const
1284 template<
typename OrdinalType,
typename ScalarType>
1285 void LAPACK<OrdinalType, ScalarType>::ORGQR(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1290 template<
typename OrdinalType,
typename ScalarType>
1291 void LAPACK<OrdinalType, ScalarType>::UNGQR(
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& k, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1296 template<
typename OrdinalType,
typename ScalarType>
1297 void LAPACK<OrdinalType, ScalarType>::ORGHR(
const OrdinalType& n,
const OrdinalType& ilo,
const OrdinalType& ihi, ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1302 template<
typename OrdinalType,
typename ScalarType>
1303 void LAPACK<OrdinalType, ScalarType>::ORMHR(
const char& SIDE,
const char&
TRANS,
const OrdinalType& m,
const OrdinalType& n,
const OrdinalType& ilo,
const OrdinalType& ihi,
const ScalarType* A,
const OrdinalType& lda,
const ScalarType* TAU, ScalarType* C,
const OrdinalType& ldc, ScalarType* WORK,
const OrdinalType& lwork, OrdinalType* info)
const
1308 template<
typename OrdinalType,
typename ScalarType>
1309 void LAPACK<OrdinalType, ScalarType>::TREVC(
const char& SIDE,
const char& HOWMNY, OrdinalType* select,
const OrdinalType& n,
const ScalarType* T,
const OrdinalType& ldt, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* m, ScalarType* WORK, OrdinalType* info)
const
1314 template<
typename OrdinalType,
typename ScalarType>
1315 void LAPACK<OrdinalType, ScalarType>::TREVC(
const char& SIDE,
const OrdinalType& n,
const ScalarType* T,
const OrdinalType& ldt, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* m, ScalarType* WORK,
MagnitudeType* RWORK, OrdinalType* info)
const
1320 template<
typename OrdinalType,
typename ScalarType>
1321 void LAPACK<OrdinalType, ScalarType>::TREXC(
const char& COMPQ,
const OrdinalType& n, ScalarType* T,
const OrdinalType& ldt, ScalarType* Q,
const OrdinalType& ldq, OrdinalType* ifst, OrdinalType* ilst, ScalarType* WORK, OrdinalType* info)
const
1327 template<
typename OrdinalType,
typename ScalarType>
1328 void LAPACK<OrdinalType, ScalarType>::TGEVC(
const char& SIDE,
const char& HOWMNY,
const OrdinalType* SELECT,
const OrdinalType& n, ScalarType* S,
const OrdinalType& lds, ScalarType* P,
const OrdinalType& ldp, ScalarType* VL,
const OrdinalType& ldvl, ScalarType* VR,
const OrdinalType& ldvr,
const OrdinalType& mm, OrdinalType* M, ScalarType* WORK, OrdinalType* info)
const
1334 template<
typename OrdinalType,
typename ScalarType>
1340 template<
typename OrdinalType,
typename ScalarType>
1341 OrdinalType
LAPACK<OrdinalType, ScalarType>::ILAENV(
const OrdinalType& ispec,
const std::string& NAME,
const std::string& OPTS,
const OrdinalType& N1,
const OrdinalType& N2,
const OrdinalType& N3,
const OrdinalType& N4 )
const
1346 template<
typename OrdinalType,
typename ScalarType>
1352 template<
typename OrdinalType,
typename ScalarType>
1358 template<
typename OrdinalType,
typename ScalarType>
1364 template<
typename OrdinalType,
typename ScalarType>
1365 void LAPACK<OrdinalType, ScalarType>::GEBAL(
const char& JOBZ,
const OrdinalType& n, ScalarType* A,
const OrdinalType& lda, OrdinalType* ilo, OrdinalType* ihi, MagnitudeType* scale, OrdinalType* info )
const
1371 template<
typename OrdinalType,
typename ScalarType>
1372 void LAPACK<OrdinalType, ScalarType>::GEBAK(
const char& JOBZ,
const char& SIDE,
const OrdinalType& n,
const OrdinalType& ilo,
const OrdinalType& ihi,
const MagnitudeType* scale,
const OrdinalType& m, ScalarType* V,
const OrdinalType& ldv, OrdinalType* info )
const
1377 template<
typename OrdinalType,
typename ScalarType>
1383 template<
typename OrdinalType,
typename ScalarType>
1391 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1399 inline LAPACK(
void) {}
1400 inline LAPACK(
const LAPACK<int, float>& ) {}
1401 inline virtual ~LAPACK(
void) {}
1404 void POTRF(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1405 void POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const float* A,
const int& lda,
float*
B,
const int& ldb,
int* info)
const;
1406 void PTTRF(
const int& n,
float* d,
float* e,
int* info)
const;
1407 void PTTRS(
const int& n,
const int& nrhs,
const float* d,
const float* e,
float*
B,
const int& ldb,
int* info)
const;
1408 void POTRI(
const char& UPLO,
const int& n,
float* A,
const int& lda,
int* info)
const;
1409 void POCON(
const char& UPLO,
const int& n,
const float* A,
const int& lda,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1410 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float*
B,
const int& ldb,
int* info)
const;
1411 void POEQU(
const int& n,
const float* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1412 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
float* A,
const int& lda,
const float* AF,
const int& ldaf,
const float*
B,
const int& ldb,
float* X,
const int& ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1414 void POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float* AF,
const int& ldaf,
char* EQUED,
float* S,
float*
B,
const int& ldb,
float* X,
const int& ldx,
float* rcond,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1417 void GELS(
const char&
TRANS,
const int& m,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* WORK,
const int& lwork,
int* info)
const;
1418 void GELSS(
const int& m,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* S,
const float& rcond,
int* rank,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1419 void GELSS(
const int& m,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* S,
const float& rcond,
int* rank,
float* WORK,
const int& lwork,
int* info)
const;
1420 void GGLSE(
const int& m,
const int& n,
const int& p,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* C,
float*
D,
float* X,
float* WORK,
const int& lwork,
int* info)
const;
1421 void GEQRF(
const int& m,
const int& n,
float* A,
const int& lda,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1422 void GEQR2(
const int& m,
const int& n,
float A[],
const int& lda,
float TAU[],
float WORK[],
int*
const info)
const;
1424 void GETRF(
const int& m,
const int& n,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1425 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const float* A,
const int& lda,
const int* IPIV,
float*
B,
const int& ldb,
int* info)
const;
1426 void LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const float& cfrom,
const float& cto,
const int& m,
const int& n,
float* A,
const int& lda,
int* info)
const;
1429 GEQP3 (
const int& m,
1440 void LASWP (
const int& N,
1446 const int& INCX)
const;
1448 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
float* A,
const int& lda,
int* IPIV,
int* info)
const;
1449 void GBTRS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const float* A,
const int& lda,
const int* IPIV,
float*
B,
const int& ldb,
int* info)
const;
1450 void GTTRF(
const int& n,
float* dl,
float* d,
float* du,
float* du2,
int* IPIV,
int* info)
const;
1451 void GTTRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const float* dl,
const float* d,
const float* du,
const float* du2,
const int* IPIV,
float*
B,
const int& ldb,
int* info)
const;
1454 void GETRI(
const int& n,
float* A,
const int& lda,
const int* IPIV,
float* WORK,
const int& lwork,
int* info)
const;
1455 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
float* A,
const int& LDA,
float* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1456 void GECON(
const char& NORM,
const int& n,
const float* A,
const int& lda,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1457 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
int* IPIV,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const;
1458 float LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
float* WORK)
const;
1459 void GESV(
const int& n,
const int& nrhs,
float* A,
const int& lda,
int* IPIV,
float*
B,
const int& ldb,
int* info)
const;
1460 void GEEQU(
const int& m,
const int& n,
const float* A,
const int& lda,
float* R,
float* C,
float* rowcond,
float* colcond,
float* amax,
int* info)
const;
1461 void GERFS(
const char&
TRANS,
const int& n,
const int& nrhs,
const float* A,
const int& lda,
const float* AF,
const int& ldaf,
const int* IPIV,
const float*
B,
const int& ldb,
float* X,
const int& ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1462 void GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const float* A,
const int& lda,
float* R,
float* C,
float* rowcond,
float* colcond,
float* amax,
int* info)
const;
1463 void GBRFS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const float* A,
const int& lda,
const float* AF,
const int& ldaf,
const int* IPIV,
const float*
B,
const int& ldb,
float* X,
const int& ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1465 void GESVX(
const char& FACT,
const char&
TRANS,
const int& n,
const int& nrhs,
float* A,
const int& lda,
float* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
float* R,
float* C,
float*
B,
const int& ldb,
float* X,
const int& ldx,
float* rcond,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const;
1467 void SYTRD(
const char& UPLO,
const int& n,
float* A,
const int& lda,
float*
D,
float*
E,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1468 void GEHRD(
const int& n,
const int& ilo,
const int& ihi,
float* A,
const int& lda,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1469 void TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const float* A,
const int& lda,
float*
B,
const int& ldb,
int* info)
const;
1470 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const float* A,
const int& lda,
int* info)
const;
1473 void STEQR(
const char& COMPZ,
const int& n,
float*
D,
float*
E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1474 void PTEQR(
const char& COMPZ,
const int& n,
float*
D,
float*
E,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1475 void SPEV(
const char& JOBZ,
const char& UPLO,
const int& n,
float* AP,
float* W,
float* Z,
const int& ldz,
float* WORK,
int* info)
const;
1476 void SYEV(
const char& JOBZ,
const char& UPLO,
const int& n,
float* A,
const int& lda,
float* W,
float* WORK,
const int& lwork,
int* info)
const;
1477 void SYGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* W,
float* WORK,
const int& lwork,
int* info)
const;
1478 void HEEV(
const char& JOBZ,
const char& UPLO,
const int& n,
float* A,
const int& lda,
float* W,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1479 void HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* W,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1482 void HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi,
float* H,
const int& ldh,
float* WR,
float* WI,
float* Z,
const int& ldz,
float* WORK,
const int& lwork,
int* info)
const;
1483 void GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(
float*,
float*),
const int& n,
float* A,
const int& lda,
int* sdim,
float* WR,
float* WI,
float* VS,
const int& ldvs,
float* WORK,
const int& lwork,
int* BWORK,
int* info)
const;
1484 void GEES(
const char& JOBVS,
const int& n,
float* A,
const int& lda,
int* sdim,
float* WR,
float* WI,
float* VS,
const int& ldvs,
float* WORK,
const int& lwork,
float* RWORK,
int* BWORK,
int* info)
const;
1486 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
float* A,
const int& lda,
float* WR,
float* WI,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
float* WORK,
const int& lwork,
int* info)
const;
1487 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
float* A,
const int& lda,
float* WR,
float* WI,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
float* WORK,
const int& lwork,
float* rwork,
int* info)
const;
1489 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
float* A,
const int& lda,
float* WR,
float* WI,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* SCALE,
float* abnrm,
float* RCONDE,
float* RCONDV,
float* WORK,
const int& lwork,
int* IWORK,
int* info)
const;
1490 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* ALPHAR,
float* ALPHAI,
float* BETA,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* lscale,
float* rscale,
float* abnrm,
float* bbnrm,
float* RCONDE,
float* RCONDV,
float* WORK,
const int& lwork,
int* IWORK,
int* BWORK,
int* info)
const;
1491 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* ALPHAR,
float* ALPHAI,
float* BETA,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* lscale,
float* rscale,
float* abnrm,
float* bbnrm,
float* RCONDE,
float* RCONDV,
float* WORK,
const int& lwork,
float* rwork,
int* IWORK,
int* BWORK,
int* info)
const;
1492 void GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* ALPHAR,
float* ALPHAI,
float* BETA,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
float* WORK,
const int& lwork,
int* info)
const;
1493 void TRSEN(
const char& JOB,
const char& COMPQ,
const int* SELECT,
const int& n,
float* T,
const int& ldt,
float* Q,
const int& ldq,
float* WR,
float* WI,
int* M,
float* S,
float* SEP,
float* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1494 void TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
float* ALPHAR,
float* ALPHAI,
float* BETA,
float* Q,
const int& ldq,
float* Z,
const int& ldz,
int* M,
float* PL,
float* PR,
float* DIF,
float* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1495 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(
float*,
float*,
float*),
const int& n,
float* A,
const int& lda,
float*
B,
const int& ldb,
int* sdim,
float* ALPHAR,
float* ALPHAI,
float* BETA,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
float* WORK,
const int& lwork,
int* bwork,
int* info )
const;
1498 void GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n,
float* A,
const int& lda,
float* S,
float* U,
const int& ldu,
float* V,
const int& ldv,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1501 void ORMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1502 void ORM2R(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const float A[],
const int& lda,
const float TAU[],
float C[],
const int& ldc,
float WORK[],
int*
const info)
const;
1503 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1504 void UNM2R(
const char& SIDE,
const char&
TRANS,
const int& M,
const int& N,
const int& K,
const float A[],
const int& LDA,
const float TAU[],
float C[],
const int& LDC,
float WORK[],
int*
const INFO)
const;
1505 void ORGQR(
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1506 void UNGQR(
const int& m,
const int& n,
const int& k,
float* A,
const int& lda,
const float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1507 void ORGHR(
const int& n,
const int& ilo,
const int& ihi,
float* A,
const int& lda,
const float* TAU,
float* WORK,
const int& lwork,
int* info)
const;
1508 void ORMHR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& ilo,
const int& ihi,
const float* A,
const int& lda,
const float* TAU,
float* C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const;
1511 void TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const float* T,
const int& ldt,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
const int& mm,
int* m,
float* WORK,
int* info)
const;
1512 void TREVC(
const char& SIDE,
const int& n,
const float* T,
const int& ldt,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
const int& mm,
int* m,
float* WORK,
float* RWORK,
int* info)
const;
1514 void TREXC(
const char& COMPQ,
const int& n,
float* T,
const int& ldt,
float* Q,
const int& ldq,
int* ifst,
int* ilst,
float* WORK,
int* info)
const;
1516 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
float* S,
const int& lds,
float* P,
const int& ldp,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
const int& mm,
int* M,
float* WORK,
int* info)
const;
1519 void LARTG(
const float&
f,
const float&
g,
float* c,
float* s,
float* r )
const;
1520 void LARFG(
const int& n,
float* alpha,
float* x,
const int& incx,
float* tau )
const;
1524 void GEBAL(
const char& JOBZ,
const int& n,
float* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1526 void GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const float* scale,
const int& m,
float* V,
const int& ldv,
int* info)
const;
1529 float LARND(
const int& idist,
int* seed )
const;
1530 void LARNV(
const int& idist,
int* seed,
const int& n,
float* v )
const;
1533 float LAMCH(
const char& CMACH)
const;
1534 int ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1 = -1,
const int& N2 = -1,
const int& N3 = -1,
const int& N4 = -1 )
const;
1537 float LAPY2(
const float& x,
const float& y)
const;
1549 inline LAPACK(
void) {}
1550 inline LAPACK(
const LAPACK<int, double>& ) {}
1551 inline virtual ~LAPACK(
void) {}
1554 void PTTRF(
const int& n,
double* d,
double* e,
int* info)
const;
1555 void PTTRS(
const int& n,
const int& nrhs,
const double* d,
const double* e,
double*
B,
const int& ldb,
int* info)
const;
1556 void POTRF(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1557 void POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
double*
B,
const int& ldb,
int* info)
const;
1558 void POTRI(
const char& UPLO,
const int& n,
double* A,
const int& lda,
int* info)
const;
1559 void POCON(
const char& UPLO,
const int& n,
const double* A,
const int& lda,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1560 void POSV(
const char& UPLO,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double*
B,
const int& ldb,
int* info)
const;
1561 void POEQU(
const int& n,
const double* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1562 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
double* A,
const int& lda,
const double* AF,
const int& ldaf,
const double*
B,
const int& ldb,
double* X,
const int& ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1564 void POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double* AF,
const int& ldaf,
char* EQUED,
double* S,
double*
B,
const int& ldb,
double* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1567 void GELS(
const char&
TRANS,
const int& m,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* WORK,
const int& lwork,
int* info)
const;
1568 void GELSS(
const int& m,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* S,
const double& rcond,
int* rank,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1569 void GELSS(
const int& m,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* S,
const double& rcond,
int* rank,
double* WORK,
const int& lwork,
int* info)
const;
1570 void GGLSE(
const int& m,
const int& n,
const int& p,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* C,
double*
D,
double* X,
double* WORK,
const int& lwork,
int* info)
const;
1571 void GEQRF(
const int& m,
const int& n,
double* A,
const int& lda,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1572 void GEQR2(
const int& m,
const int& n,
double A[],
const int& lda,
double TAU[],
double WORK[],
int*
const info)
const;
1573 void GETRF(
const int& m,
const int& n,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1574 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
const int* IPIV,
double*
B,
const int& ldb,
int* info)
const;
1575 void LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const double& cfrom,
const double& cto,
const int& m,
const int& n,
double* A,
const int& lda,
int* info)
const;
1578 GEQP3 (
const int& m,
1589 void LASWP (
const int& N,
1595 const int& INCX)
const;
1597 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku,
double* A,
const int& lda,
int* IPIV,
int* info)
const;
1598 void GBTRS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const double* A,
const int& lda,
const int* IPIV,
double*
B,
const int& ldb,
int* info)
const;
1599 void GTTRF(
const int& n,
double* dl,
double* d,
double* du,
double* du2,
int* IPIV,
int* info)
const;
1600 void GTTRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const double* dl,
const double* d,
const double* du,
const double* du2,
const int* IPIV,
double*
B,
const int& ldb,
int* info)
const;
1601 void GETRI(
const int& n,
double* A,
const int& lda,
const int* IPIV,
double* WORK,
const int& lwork,
int* info)
const;
1602 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
double* A,
const int& LDA,
double* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1603 void GECON(
const char& NORM,
const int& n,
const double* A,
const int& lda,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1604 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
int* IPIV,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const;
1605 double LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
double* WORK)
const;
1606 void GESV(
const int& n,
const int& nrhs,
double* A,
const int& lda,
int* IPIV,
double*
B,
const int& ldb,
int* info)
const;
1607 void GEEQU(
const int& m,
const int& n,
const double* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1608 void GERFS(
const char&
TRANS,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
const double* AF,
const int& ldaf,
const int* IPIV,
const double*
B,
const int& ldb,
double* X,
const int& ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1609 void GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1610 void GBRFS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const double* A,
const int& lda,
const double* AF,
const int& ldaf,
const int* IPIV,
const double*
B,
const int& ldb,
double* X,
const int& ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1612 void GESVX(
const char& FACT,
const char&
TRANS,
const int& n,
const int& nrhs,
double* A,
const int& lda,
double* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
double* R,
double* C,
double*
B,
const int& ldb,
double* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const;
1614 void SYTRD(
const char& UPLO,
const int& n,
double* A,
const int& lda,
double*
D,
double*
E,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1615 void GEHRD(
const int& n,
const int& ilo,
const int& ihi,
double* A,
const int& lda,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1616 void TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
double*
B,
const int& ldb,
int* info)
const;
1617 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const double* A,
const int& lda,
int* info)
const;
1620 void STEQR(
const char& COMPZ,
const int& n,
double*
D,
double*
E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1621 void PTEQR(
const char& COMPZ,
const int& n,
double*
D,
double*
E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1622 void SPEV(
const char& JOBZ,
const char& UPLO,
const int& n,
double* AP,
double* W,
double* Z,
const int& ldz,
double* WORK,
int* info)
const;
1623 void SYEV(
const char& JOBZ,
const char& UPLO,
const int& n,
double* A,
const int& lda,
double* W,
double* WORK,
const int& lwork,
int* info)
const;
1624 void SYGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* W,
double* WORK,
const int& lwork,
int* info)
const;
1625 void HEEV(
const char& JOBZ,
const char& UPLO,
const int& n,
double* A,
const int& lda,
double* W,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1626 void HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* W,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1629 void HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi,
double* H,
const int& ldh,
double* WR,
double* WI,
double* Z,
const int& ldz,
double* WORK,
const int& lwork,
int* info)
const;
1630 void GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(
double*,
double*),
const int& n,
double* A,
const int& lda,
int* sdim,
double* WR,
double* WI,
double* VS,
const int& ldvs,
double* WORK,
const int& lwork,
int* BWORK,
int* info)
const;
1631 void GEES(
const char& JOBVS,
const int& n,
double* A,
const int& lda,
int* sdim,
double* WR,
double* WI,
double* VS,
const int& ldvs,
double* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const;
1633 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
double* A,
const int& lda,
double* WR,
double* WI,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
double* WORK,
const int& lwork,
int* info)
const;
1634 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
double* A,
const int& lda,
double* WR,
double* WI,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1636 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
double* A,
const int& lda,
double* WR,
double* WI,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* SCALE,
double* abnrm,
double* RCONDE,
double* RCONDV,
double* WORK,
const int& lwork,
int* IWORK,
int* info)
const;
1637 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* ALPHAR,
double* ALPHAI,
double* BETA,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV,
double* WORK,
const int& lwork,
int* IWORK,
int* BWORK,
int* info)
const;
1638 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* ALPHAR,
double* ALPHAI,
double* BETA,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV,
double* WORK,
const int& lwork,
double* rwork,
int* IWORK,
int* BWORK,
int* info)
const;
1639 void GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* ALPHAR,
double* ALPHAI,
double* BETA,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
double* WORK,
const int& lwork,
int* info)
const;
1640 void TRSEN(
const char& JOB,
const char& COMPQ,
const int* SELECT,
const int& n,
double* T,
const int& ldt,
double* Q,
const int& ldq,
double* WR,
double* WI,
int* M,
double* S,
double* SEP,
double* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1641 void TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
double* ALPHAR,
double* ALPHAI,
double* BETA,
double* Q,
const int& ldq,
double* Z,
const int& ldz,
int* M,
double* PL,
double* PR,
double* DIF,
double* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const;
1642 void GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(
double*,
double*,
double*),
const int& n,
double* A,
const int& lda,
double*
B,
const int& ldb,
int* sdim,
double* ALPHAR,
double* ALPHAI,
double* BETA,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
double* WORK,
const int& lwork,
int* bwork,
int* info )
const;
1646 void GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n,
double* A,
const int& lda,
double* S,
double* U,
const int& ldu,
double* V,
const int& ldv,
double* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1649 void ORMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1650 void ORM2R(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const double A[],
const int& lda,
const double TAU[],
double C[],
const int& ldc,
double WORK[],
int*
const info)
const;
1651 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1652 void UNM2R(
const char& SIDE,
const char&
TRANS,
const int& M,
const int& N,
const int& K,
const double A[],
const int& LDA,
const double TAU[],
double C[],
const int& LDC,
double WORK[],
int*
const INFO)
const;
1653 void ORGQR(
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1654 void UNGQR(
const int& m,
const int& n,
const int& k,
double* A,
const int& lda,
const double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1655 void ORGHR(
const int& n,
const int& ilo,
const int& ihi,
double* A,
const int& lda,
const double* TAU,
double* WORK,
const int& lwork,
int* info)
const;
1656 void ORMHR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& ilo,
const int& ihi,
const double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const;
1659 void TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const double* T,
const int& ldt,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
const int& mm,
int* m,
double* WORK,
int* info)
const;
1660 void TREVC(
const char& SIDE,
const int& n,
const double* T,
const int& ldt,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
const int& mm,
int* m,
double* WORK,
double* RWORK,
int* info)
const;
1662 void TREXC(
const char& COMPQ,
const int& n,
double* T,
const int& ldt,
double* Q,
const int& ldq,
int* ifst,
int* ilst,
double* WORK,
int* info)
const;
1664 void TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
double* S,
const int& lds,
double* P,
const int& ldp,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
const int& mm,
int* M,
double* WORK,
int* info)
const;
1667 void LARTG(
const double&
f,
const double&
g,
double* c,
double* s,
double* r )
const;
1668 void LARFG(
const int& n,
double* alpha,
double* x,
const int& incx,
double* tau )
const;
1672 void GEBAL(
const char& JOBZ,
const int& n,
double* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1674 void GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const double* scale,
const int& m,
double* V,
const int& ldv,
int* info)
const;
1677 double LARND(
const int& idist,
int* seed )
const;
1678 void LARNV(
const int& idist,
int* seed,
const int& n,
double* v )
const;
1681 double LAMCH(
const char& CMACH)
const;
1682 int ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1 = -1,
const int& N2 = -1,
const int& N3 = -1,
const int& N4 = -1 )
const;
1685 double LAPY2(
const double& x,
const double& y)
const;
1691 #ifdef HAVE_TEUCHOS_COMPLEX
1699 inline LAPACK(
void) {}
1700 inline LAPACK(
const LAPACK<
int, std::complex<float> >& lapack) {}
1701 inline virtual ~LAPACK(
void) {}
1704 void PTTRF(
const int& n, std::complex<float>* d, std::complex<float>* e,
int* info)
const;
1705 void PTTRS(
const int& n,
const int& nrhs,
const std::complex<float>* d,
const std::complex<float>* e, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1706 void POTRF(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1707 void POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1708 void POTRI(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1709 void POCON(
const char& UPLO,
const int& n,
const std::complex<float>* A,
const int& lda,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* rwork,
int* info)
const;
1710 void POSV(
const char& UPLO,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1711 void POEQU(
const int& n,
const std::complex<float>* A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const;
1712 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda,
const std::complex<float>* AF,
const int& ldaf,
const std::complex<float>*
B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1714 void POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda, std::complex<float>* AF,
const int& ldaf,
char* EQUED,
float* S, std::complex<float>*
B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* rcond,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1717 void GELS(
const char&
TRANS,
const int& m,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1718 void GELSS(
const int& m,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
float* S,
const float& rcond,
int* rank, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1719 void GEQRF(
const int& m,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* TAU, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1720 void GEQR2(
const int& m,
const int& n, std::complex<float> A[],
const int& lda, std::complex<float> TAU[], std::complex<float> WORK[],
int*
const info)
const;
1721 void UNGQR(
const int& m,
const int& n,
const int& k, std::complex<float>* A,
const int& lda,
const std::complex<float>* TAU, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1722 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k, std::complex<float>* A,
const int& lda,
const std::complex<float>* TAU, std::complex<float>* C,
const int& ldc, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1723 void UNM2R(
const char& SIDE,
const char&
TRANS,
const int& M,
const int& N,
const int& K,
const std::complex<float> A[],
const int& LDA,
const std::complex<float> TAU[], std::complex<float> C[],
const int& LDC, std::complex<float> WORK[],
int*
const INFO)
const;
1724 void GETRF(
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
int* IPIV,
int* info)
const;
1725 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const int* IPIV, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1726 void LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const float& cfrom,
const float& cto,
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const;
1729 GEQP3 (
const int& m,
1731 std::complex<float>* A,
1734 std::complex<float>* TAU,
1735 std::complex<float>* WORK,
1740 void LASWP (
const int& N,
1741 std::complex<float> A[],
1746 const int& INCX)
const;
1748 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku, std::complex<float>* A,
const int& lda,
int* IPIV,
int* info)
const;
1749 void GBTRS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const int* IPIV, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1750 void GTTRF(
const int& n, std::complex<float>* dl, std::complex<float>* d, std::complex<float>* du, std::complex<float>* du2,
int* IPIV,
int* info)
const;
1751 void GTTRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<float>* dl,
const std::complex<float>* d,
const std::complex<float>* du,
const std::complex<float>* du2,
const int* IPIV, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1752 void GETRI(
const int& n, std::complex<float>* A,
const int& lda,
const int* IPIV, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1753 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N, std::complex<float>* A,
const int& LDA, std::complex<float>* X,
float* SCALE,
float* CNORM,
int* INFO)
const;
1754 void GECON(
const char& NORM,
const int& n,
const std::complex<float>* A,
const int& lda,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1755 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<float>* A,
const int& lda,
int* IPIV,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1756 float LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<float>* A,
const int& lda,
float* WORK)
const;
1757 void GESV(
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda,
int* IPIV, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1758 void GEEQU(
const int& m,
const int& n,
const std::complex<float>* A,
const int& lda,
float* R,
float* C,
float* rowcond,
float* colcond,
float* amax,
int* info)
const;
1759 void GERFS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* AF,
const int& ldaf,
const int* IPIV,
const std::complex<float>*
B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1760 void GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const std::complex<float>* A,
const int& lda,
float* R,
float* C,
float* rowcond,
float* colcond,
float* amax,
int* info)
const;
1761 void GBRFS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* AF,
const int& ldaf,
const int* IPIV,
const std::complex<float>*
B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1763 void GESVX(
const char& FACT,
const char&
TRANS,
const int& n,
const int& nrhs, std::complex<float>* A,
const int& lda, std::complex<float>* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
float* R,
float* C, std::complex<float>*
B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* rcond,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1765 void GEHRD(
const int& n,
const int& ilo,
const int& ihi, std::complex<float>* A,
const int& lda, std::complex<float>* TAU, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1766 void TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
int* info)
const;
1767 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const std::complex<float>* A,
const int& lda,
int* info)
const;
1770 void STEQR(
const char& COMPZ,
const int& n,
float*
D,
float*
E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1771 void PTEQR(
const char& COMPZ,
const int& n,
float*
D,
float*
E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const;
1772 void HEEV(
const char& JOBZ,
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
float* W, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1773 void HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
float* W, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1776 void HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi, std::complex<float>* H,
const int& ldh, std::complex<float>* W, std::complex<float>* Z,
const int& ldz, std::complex<float>* WORK,
const int& lwork,
int* info)
const;
1777 void GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(std::complex<float>*),
const int& n, std::complex<float>* A,
const int& lda,
int* sdim, std::complex<float>* W, std::complex<float>* VS,
const int& ldvs, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* BWORK,
int* info)
const;
1778 void GEES(
const char& JOBVS,
const int& n, std::complex<float>* A,
const int& lda,
int* sdim,
float* WR,
float* WI, std::complex<float>* VS,
const int& ldvs, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* BWORK,
int* info)
const;
1780 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* W, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1781 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<float>* A,
const int& lda,
float* WR,
float* WI, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1783 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* W, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* SCALE,
float* abnrm,
float* RCONDE,
float* RCONDV, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1785 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* lscale,
float* rscale,
float* abnrm,
float* bbnrm,
float* RCONDE,
float* RCONDV, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1786 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>*
B,
const int& ldb,
float* ALPHAR,
float* ALPHAI, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr,
int* ilo,
int* ihi,
float* lscale,
float* rscale,
float* abnrm,
float* bbnrm,
float* RCONDE,
float* RCONDV, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1787 void GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<float> *A,
const int& lda, std::complex<float> *
B,
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float> *WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1790 void GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n, std::complex<float>* A,
const int& lda,
float* S, std::complex<float>* U,
const int& ldu, std::complex<float>* V,
const int& ldv, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info)
const;
1793 void TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const std::complex<float>* T,
const int& ldt, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr,
const int& mm,
int* m, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1794 void TREVC(
const char& SIDE,
const int& n,
const std::complex<float>* T,
const int& ldt, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr,
const int& mm,
int* m, std::complex<float>* WORK,
float* RWORK,
int* info)
const;
1796 void TREXC(
const char& COMPQ,
const int& n, std::complex<float>* T,
const int& ldt, std::complex<float>* Q,
const int& ldq,
int* ifst,
int* ilst, std::complex<float>* WORK,
int* info)
const;
1799 void LARTG(
const std::complex<float>
f,
const std::complex<float>
g,
float* c, std::complex<float>* s, std::complex<float>* r )
const;
1800 void LARFG(
const int& n, std::complex<float>* alpha, std::complex<float>* x,
const int& incx, std::complex<float>* tau )
const;
1804 void GEBAL(
const char& JOBZ,
const int& n, std::complex<float>* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const;
1806 void GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const float* scale,
const int& m, std::complex<float>* V,
const int& ldv,
int* info)
const;
1809 std::complex<float> LARND(
const int& idist,
int* seed )
const;
1810 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<float>* v )
const;
1813 int ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1 = -1,
const int& N2 = -1,
const int& N3 = -1,
const int& N4 = -1 )
const;
1825 inline LAPACK(
void) {}
1826 inline LAPACK(
const LAPACK<
int, std::complex<double> >& lapack) {}
1827 inline virtual ~LAPACK(
void) {}
1830 void PTTRF(
const int& n, std::complex<double>* d, std::complex<double>* e,
int* info)
const;
1831 void PTTRS(
const int& n,
const int& nrhs,
const std::complex<double>* d,
const std::complex<double>* e, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1832 void POTRF(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1833 void POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1834 void POTRI(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1835 void POCON(
const char& UPLO,
const int& n,
const std::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1836 void POSV(
const char& UPLO,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1837 void POEQU(
const int& n,
const std::complex<double>* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const;
1838 void PORFS(
const char& UPLO,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda,
const std::complex<double>* AF,
const int& ldaf,
const std::complex<double>*
B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1840 void POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda, std::complex<double>* AF,
const int& ldaf,
char* EQUED,
double* S, std::complex<double>*
B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1843 void GELS(
const char&
TRANS,
const int& m,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1844 void GELSS(
const int& m,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
double* S,
const double& rcond,
int* rank, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1845 void GEQRF(
const int& m,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* TAU, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1846 void GEQR2(
const int& m,
const int& n, std::complex<double> A[],
const int& lda, std::complex<double> TAU[], std::complex<double> WORK[],
int*
const info)
const;
1847 void UNGQR(
const int& m,
const int& n,
const int& k, std::complex<double>* A,
const int& lda,
const std::complex<double>* TAU, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1848 void UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k, std::complex<double>* A,
const int& lda,
const std::complex<double>* TAU, std::complex<double>* C,
const int& ldc, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1849 void UNM2R(
const char& SIDE,
const char&
TRANS,
const int& M,
const int& N,
const int& K,
const std::complex<double> A[],
const int& LDA,
const std::complex<double> TAU[], std::complex<double> C[],
const int& LDC, std::complex<double> WORK[],
int*
const INFO)
const;
1851 void GETRF(
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1852 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const int* IPIV, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1853 void LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const double& cfrom,
const double& cto,
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const;
1856 GEQP3 (
const int& m,
1858 std::complex<double>* A,
1861 std::complex<double>* TAU,
1862 std::complex<double>* WORK,
1867 void LASWP (
const int& N,
1868 std::complex<double> A[],
1873 const int& INCX)
const;
1875 void GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku, std::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const;
1876 void GBTRS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const int* IPIV, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1877 void GTTRF(
const int& n, std::complex<double>* dl, std::complex<double>* d, std::complex<double>* du, std::complex<double>* du2,
int* IPIV,
int* info)
const;
1878 void GTTRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<double>* dl,
const std::complex<double>* d,
const std::complex<double>* du,
const std::complex<double>* du2,
const int* IPIV, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1879 void GETRI(
const int& n, std::complex<double>* A,
const int& lda,
const int* IPIV, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1880 void LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N, std::complex<double>* A,
const int& LDA, std::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const;
1881 void GECON(
const char& NORM,
const int& n,
const std::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1882 void GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<double>* A,
const int& lda,
int* IPIV,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1883 double LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const std::complex<double>* A,
const int& lda,
double* WORK)
const;
1884 void GESV(
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda,
int* IPIV, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1885 void GEEQU(
const int& m,
const int& n,
const std::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1886 void GERFS(
const char&
TRANS,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const std::complex<double>*
B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1887 void GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const std::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const;
1888 void GBRFS(
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const std::complex<double>*
B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1890 void GESVX(
const char& FACT,
const char&
TRANS,
const int& n,
const int& nrhs, std::complex<double>* A,
const int& lda, std::complex<double>* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
double* R,
double* C, std::complex<double>*
B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1892 void GEHRD(
const int& n,
const int& ilo,
const int& ihi, std::complex<double>* A,
const int& lda, std::complex<double>* TAU, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1893 void TRTRS(
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
int* info)
const;
1894 void TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
const std::complex<double>* A,
const int& lda,
int* info)
const;
1897 void STEQR(
const char& COMPZ,
const int& n,
double*
D,
double*
E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1898 void PTEQR(
const char& COMPZ,
const int& n,
double*
D,
double*
E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const;
1899 void HEEV(
const char& JOBZ,
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
double* W, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1900 void HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
double* W, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1903 void HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi, std::complex<double>* H,
const int& ldh, std::complex<double>* W, std::complex<double>* Z,
const int& ldz, std::complex<double>* WORK,
const int& lwork,
int* info)
const;
1904 void GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(std::complex<double>*),
const int& n, std::complex<double>* A,
const int& lda,
int* sdim, std::complex<double>* W, std::complex<double>* VS,
const int& ldvs, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const;
1905 void GEES(
const char& JOBVS,
const int& n, std::complex<double>* A,
const int& lda,
int* sdim,
double* WR,
double* WI, std::complex<double>* VS,
const int& ldvs, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const;
1907 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* W, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1908 void GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<double>* A,
const int& lda,
double* WR,
double* WI, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1910 void GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* W, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* SCALE,
double* abnrm,
double* RCONDE,
double* RCONDV, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1911 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, std::complex<double>* work,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1912 void GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>*
B,
const int& ldb,
double* ALPHAR,
double* ALPHAI, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, std::complex<double>* work,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const;
1913 void GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<double> *A,
const int& lda, std::complex<double> *
B,
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>*VR,
const int& ldvr, std::complex<double> *WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1916 void GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n, std::complex<double>* A,
const int& lda,
double* S, std::complex<double>* U,
const int& ldu, std::complex<double>* V,
const int& ldv, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const;
1919 void TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const std::complex<double>* T,
const int& ldt, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1920 void TREVC(
const char& SIDE,
const int& n,
const std::complex<double>* T,
const int& ldt, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, std::complex<double>* WORK,
double* RWORK,
int* info)
const;
1922 void TREXC(
const char& COMPQ,
const int& n, std::complex<double>* T,
const int& ldt, std::complex<double>* Q,
const int& ldq,
int* ifst,
int* ilst, std::complex<double>* WORK,
int* info)
const;
1925 void LARTG(
const std::complex<double>
f,
const std::complex<double>
g,
double* c, std::complex<double>* s, std::complex<double>* r )
const;
1926 void LARFG(
const int& n, std::complex<double>* alpha, std::complex<double>* x,
const int& incx, std::complex<double>* tau )
const;
1930 void GEBAL(
const char& JOBZ,
const int& n, std::complex<double>* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const;
1932 void GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const double* scale,
const int& m, std::complex<double>* V,
const int& ldv,
int* info)
const;
1935 std::complex<double> LARND(
const int& idist,
int* seed )
const;
1936 void LARNV(
const int& idist,
int* seed,
const int& n, std::complex<double>* v )
const;
1939 int ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1 = -1,
const int& N2 = -1,
const int& N3 = -1,
const int& N4 = -1 )
const;
1945 #endif // HAVE_TEUCHOS_COMPLEX
1947 #ifdef HAVE_TEUCHOSCORE_QUADMATH
1957 inline LAPACK(
void) {}
1958 inline LAPACK(
const LAPACK<int, __float128>& lapack) {}
1959 inline virtual ~LAPACK(
void) {}
1961 void GEQRF(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const;
1962 void GEQR2(
const int& m,
const int& n, __float128 A[],
const int& lda, __float128 TAU[], __float128 WORK[],
int*
const info)
const;
1963 void GETRF(
const int& m,
const int& n, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1964 void GETRS(
const char&
TRANS,
const int& n,
const int& nrhs,
const __float128* A,
const int& lda,
const int* IPIV, __float128*
B,
const int& ldb,
int* info)
const;
1965 void GETRI(
const int& n, __float128* A,
const int& lda,
const int* IPIV, __float128* WORK,
const int& lwork,
int* info)
const;
1966 void LASWP (
const int& N, __float128 A[],
const int& LDA,
const int& K1,
const int& K2,
const int IPIV[],
const int& INCX)
const;
1968 void ORM2R(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const __float128 A[],
const int& lda,
const __float128 TAU[], __float128 C[],
const int& ldc, __float128 WORK[],
int*
const info)
const;
1969 void ORGQR(
const int& m,
const int& n,
const int& k, __float128* A,
const int& lda,
const __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const;
1970 void UNGQR(
const int& m,
const int& n,
const int& k, __float128* A,
const int& lda,
const __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const;
1972 void LARFG(
const int& n, __float128* alpha, __float128* x,
const int& incx, __float128* tau )
const;
1974 __float128 LAPY2 (
const __float128 x,
const __float128 y)
const;
1975 void LASCL (
const char& TYPE,
const int& kl,
const int& ku,
const __float128 cfrom,
const __float128 cto,
const int& m,
const int& n, __float128* A,
const int& lda,
int* info)
const;
1977 void GBTRF (
const int& m,
const int& n,
const int& kl,
const int& ku, __float128* A,
const int& lda,
int* IPIV,
int* info)
const;
1978 void GBTRS (
const char&
TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const __float128* A,
const int& lda,
const int* IPIV, __float128*
B,
const int& ldb,
int* info)
const;
1983 #endif // HAVE_TEUCHOSCORE_QUADMATH
1985 #endif // DOXYGEN_SHOULD_SKIP_THIS
1989 #endif // _TEUCHOS_LAPACK_HPP_
Teuchos::ScalarTraits< ScalarType >::magnitudeType MagnitudeType
void ORGQR(const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Compute explicit Q factor from QR factorization (GEQRF) (real case).
void GEEQU(const OrdinalType &m, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, ScalarType *R, ScalarType *C, ScalarType *rowcond, ScalarType *colcond, ScalarType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n matrix A and reduce its condition ...
void GEQR2(const OrdinalType &m, const OrdinalType &n, ScalarType A[], const OrdinalType &lda, ScalarType TAU[], ScalarType WORK[], OrdinalType *const info) const
BLAS 2 version of GEQRF, with known workspace size.
void LARTG(const ScalarType &f, const ScalarType &g, MagnitudeType *c, ScalarType *s, ScalarType *r) const
Gnerates a plane rotation that zeros out the second component of the input vector.
void GGEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *lscale, MagnitudeType *rscale, MagnitudeType *abnrm, MagnitudeType *bbnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *BWORK, OrdinalType *info) const
ScalarType magnitudeType
Mandatory typedef for result of magnitude.
void SYTRD(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *D, ScalarType *E, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real symmetric matrix A to tridiagonal form by orthogonal similarity transformations.
OrdinalType ILAENV(const OrdinalType &ispec, const std::string &NAME, const std::string &OPTS, const OrdinalType &N1=-1, const OrdinalType &N2=-1, const OrdinalType &N3=-1, const OrdinalType &N4=-1) const
Chooses problem-dependent parameters for the local environment.
void UNMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Apply Householder reflectors (complex case).
void 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 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 LARFG(const OrdinalType &n, ScalarType *alpha, ScalarType *x, const OrdinalType &incx, ScalarType *tau) const
Generates an elementary reflector of order n that zeros out the last n-1 components of the input vect...
void GEBAK(const char &JOBZ, const char &SIDE, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const MagnitudeType *scale, const OrdinalType &m, ScalarType *V, const OrdinalType &ldv, OrdinalType *info) const
Forms the left or right eigenvectors of a general matrix that has been balanced by GEBAL by backward ...
void POTRI(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of a real symmetric positive definite matrix A using the Cholesky factorization ...
void GTTRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *dl, const ScalarType *d, const ScalarType *du, const ScalarType *du2, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B or A^H*X=B with a tridiagonal matrix A using the ...
static T squareroot(T x)
Returns a number of magnitudeType that is the square root of this scalar type x.
void SPEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *AP, ScalarType *W, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A in packed stora...
void GTTRF(const OrdinalType &n, ScalarType *dl, ScalarType *d, ScalarType *du, ScalarType *du2, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a n by n tridiagonal matrix A using partial pivoting with row interch...
void 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 TRTRS(const char &UPLO, const char &TRANS, const char &DIAG, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a triangular linear system of the form A*X=B or A**T*X=B, where A is a triangular matrix...
void POTRS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B, where A is a symmetric positive definite matrix factored b...
void POSV(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is a symmetric positive def...
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
void 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...
LAPACK(void)
Default Constructor.
void PTEQR(const char &COMPZ, const OrdinalType &n, MagnitudeType *D, MagnitudeType *E, ScalarType *Z, const OrdinalType &ldz, MagnitudeType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric positive-definite tridiagonal n...
void TREVC(const char &SIDE, const char &HOWMNY, OrdinalType *select, const OrdinalType &n, const ScalarType *T, const OrdinalType &ldt, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *m, ScalarType *WORK, OrdinalType *info) const
void 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 STEQR(const char &COMPZ, const OrdinalType &n, MagnitudeType *D, MagnitudeType *E, ScalarType *Z, const OrdinalType &ldz, MagnitudeType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal n by n matrix A usi...
static magnitudeType sfmin()
Returns safe minimum (sfmin), such that 1/sfmin does not overflow.
This structure defines some basic traits for a scalar field type.
#define TEUCHOSNUMERICS_LIB_DLL_EXPORT
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 GETRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general m by n matrix A using partial pivoting with row interchange...
ScalarTraits< ScalarType >::magnitudeType LANGB(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, MagnitudeType *WORK) const
Returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of lar...
void GGES(const char &JOBVL, const char &JOBVR, const char &SORT, OrdinalType &(*ptr2func)(ScalarType *, ScalarType *, ScalarType *), const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *sdim, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *BWORK, OrdinalType *info) const
void ORMHR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Overwrites the general real m by n matrix C with the product of C and Q, which is a product of ihi-il...
LAPACK(const LAPACK< OrdinalType, ScalarType > &lapack)
Copy Constructor.
void GEES(const char &JOBVS, const char &SORT, OrdinalType &(*ptr2func)(ScalarType *, ScalarType *), const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *sdim, ScalarType *WR, ScalarType *WI, ScalarType *VS, const OrdinalType &ldvs, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *BWORK, OrdinalType *info) const
void GEBAL(const char &JOBZ, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *scale, OrdinalType *info) const
Balances a general matrix A, through similarity transformations to make the rows and columns as close...
void PORFS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
ScalarType LARND(const OrdinalType &idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
void POTRF(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes Cholesky factorization of a real symmetric positive definite matrix A.
void SYEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A...
void 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 TREXC(const char &COMPQ, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, OrdinalType *ifst, OrdinalType *ilst, ScalarType *WORK, OrdinalType *info) const
The Templated LAPACK Wrapper Class.
#define TEUCHOS_MAX(x, y)
void GGEV(const char &JOBVL, const char &JOBVR, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
void SYGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix pencil {A...
void 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 LASCL(const char &TYPE, const OrdinalType &kl, const OrdinalType &ku, const MagnitudeType cfrom, const MagnitudeType cto, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Multiplies the m by n matrix A by the real scalar cto/cfrom.
void POSVX(const char &FACT, const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, char *EQUED, ScalarType *S, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the Cholesky factorization to compute the solution to a real system of linear equations A*X=B...
ScalarType LAPY2(const ScalarType &x, const ScalarType &y) const
Computes x^2 + y^2 safely, to avoid overflow.
void TRSEN(const char &JOB, const char &COMPQ, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, MagnitudeType *WR, MagnitudeType *WI, OrdinalType *M, ScalarType *S, MagnitudeType *SEP, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, const OrdinalType &liwork, OrdinalType *info) const
void GEHRD(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real general matrix A to upper Hessenberg form by orthogonal similarity transformations...
static magnitudeType magnitude(T a)
Returns the magnitudeType of the scalar type a.
void UNGQR(const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Compute explicit QR factor from QR factorization (GEQRF) (complex case).
void 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 GBTRS(const char &TRANS, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B with a general banded n by n matrix A using the L...
void GEQRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes a QR factorization of a general m by n matrix A.
void GESVD(const char &JOBU, const char &JOBVT, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *S, ScalarType *U, const OrdinalType &ldu, ScalarType *V, const OrdinalType &ldv, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes the singular values (and optionally, vectors) of a real matrix A.
void GESV(const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is factored through GETRF a...
virtual ~LAPACK(void)
Destructor.
void GEEV(const char &JOBVL, const char &JOBVR, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *WR, MagnitudeType *WI, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes for an n by n real nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right eigenvectors.
void GETRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B with a general n by n matrix A using the LU facto...
void GEEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *WR, ScalarType *WI, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *SCALE, MagnitudeType *abnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *info) const
void GESVX(const char &FACT, const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, OrdinalType *IPIV, char *EQUED, ScalarType *R, ScalarType *C, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the LU factorization to compute the solution to a real system of linear equations A*X=B...
Defines basic traits for the scalar field type.
static T zero()
Returns representation of zero for this scalar type.
void GETRI(const OrdinalType &n, ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the inverse of a matrix A using the LU factorization computed by GETRF.
void GELS(const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Solves an over/underdetermined real m by n linear system A using QR or LQ factorization of A...
void GELSS(const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *S, const MagnitudeType rcond, OrdinalType *rank, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Use the SVD to solve a possibly rank-deficient linear least-squares problem.
void HEEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a Hermitian n by n matrix A...
void LARNV(const OrdinalType &idist, OrdinalType *seed, const OrdinalType &n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
void TGSEN(const OrdinalType &ijob, const OrdinalType &wantq, const OrdinalType &wantz, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType *Q, const OrdinalType &ldq, ScalarType *Z, const OrdinalType &ldz, OrdinalType *M, MagnitudeType *PL, MagnitudeType *PR, MagnitudeType *DIF, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, const OrdinalType &liwork, OrdinalType *info) const
void 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 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 GERFS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations and provides error bounds and backward...
void GEQP3(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *jpvt, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS...
ScalarType LAMCH(const char &CMACH) const
Determines machine parameters for floating point characteristics.
void HEGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a generalized Hermitian-definite n by n...
void ORGHR(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Generates a real orthogonal matrix Q which is the product of ihi-ilo elementary reflectors of order n...
#define TEUCHOS_MIN(x, y)
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 LATRS(const char &UPLO, const char &TRANS, const char &DIAG, const char &NORMIN, const OrdinalType &N, ScalarType *A, const OrdinalType &LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
void 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
static T one()
Returns representation of one for this scalar type.
void HSEQR(const char &JOB, const char &COMPZ, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *H, const OrdinalType &ldh, ScalarType *WR, ScalarType *WI, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the eigenvalues of a real upper Hessenberg matrix H and, optionally, the matrices T and Z fr...
void GBRFS(const char &TRANS, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a banded system of linear equations and provides error bounds and b...
void POEQU(const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, MagnitudeType *S, MagnitudeType *scond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate a symmetric positive definite matrix A and r...
void 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...