47 #ifdef HAVE_TEUCHOSCORE_QUADMATH 49 #endif // HAVE_TEUCHOSCORE_QUADMATH 59 #if defined (INTEL_CXML) 60 #define CHAR_MACRO(char_var) &char_var, one 62 #define CHAR_MACRO(char_var) &char_var 68 #if defined (INTEL_CXML) 69 #define CHARPTR_MACRO(charptr_var) charptr_var, one 71 #define CHARPTR_MACRO(charptr_var) charptr_var 76 #if defined (INTEL_CXML) 86 const int* ispec,
const char* name,
const unsigned int& name_length,
87 const char* opts,
const unsigned int& opts_length,
88 const int* N1,
const int* N2,
const int* N3,
const int* N4 )
90 #if defined (INTEL_CXML) 91 return ILAENV_F77(ispec, name, name_length, opts, opts_length, N1, N2, N3, N4 );
93 return ILAENV_F77(ispec, name, opts, N1, N2, N3, N4, name_length, opts_length );
126 void LAPACK<int, float>::POTRS(
const char& UPLO,
const int&
n,
const int& nrhs,
const float*
A,
const int& lda,
float*
B,
const int& ldb,
int* info)
const 134 void LAPACK<int, float>::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 138 void LAPACK<int, float>::POSV(
const char& UPLO,
const int&
n,
const int& nrhs,
float*
A,
const int& lda,
float*
B,
const int& ldb,
int* info)
const 146 void LAPACK<int, float>::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 147 {
SPORFS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
149 void LAPACK<int, float>::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 150 {
SPOSVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
CHARPTR_MACRO(EQUED), S,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
153 void LAPACK<int,float>::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 154 {
SGELS_F77(
CHAR_MACRO(
TRANS), &m, &
n, &nrhs,
A, &lda,
B, &ldb, WORK, &lwork, info); }
156 void LAPACK<int,float>::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 159 SGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, info);
162 void LAPACK<int,float>::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 163 {
SGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
166 void LAPACK<int,float>::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 167 {
SGGLSE_F77(&m, &
n, &p,
A, &lda,
B, &ldb,
C,
D, X, WORK, &lwork, info); }
170 void LAPACK<int,float>::GEQRF(
const int& m,
const int&
n,
float*
A,
const int& lda,
float* TAU,
float* WORK,
const int& lwork,
int* info)
const 171 {
SGEQRF_F77(&m, &
n,
A, &lda, TAU, WORK, &lwork, info); }
182 void LAPACK<int,float>::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 186 void LAPACK<int,float>::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 203 SGEQP3_F77(&m, &
n,
A, &lda, jpvt, TAU, WORK, &lwork, info);
213 const int& INCX)
const 218 void LAPACK<int,float>::GBTRF(
const int& m,
const int&
n,
const int& kl,
const int& ku,
float*
A,
const int& lda,
int* IPIV,
int* info)
const 222 void LAPACK<int,float>::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 223 {
SGBTRS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, IPIV,
B, &ldb, info); }
230 void LAPACK<int,float>::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 231 {
SGTTRS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs, dl, d, du, du2, IPIV,
B, &ldb, info); }
264 void LAPACK<int,float>::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 268 void LAPACK<int,float>::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 269 {
SGBCON_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, IPIV, &anorm, rcond, WORK, IWORK, info); }
272 float LAPACK<int,float>::LANGB(
const char& NORM,
const int&
n,
const int& kl,
const int& ku,
const float*
A,
const int& lda,
float* WORK)
const 280 void LAPACK<int,float>::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 281 {
SGEEQU_F77(&m, &
n,
A, &lda, R,
C, rowcond, colcond, amax, info); }
284 void LAPACK<int,float>::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 285 {
SGERFS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
288 void LAPACK<int,float>::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 289 {
SGBEQU_F77(&m, &
n, &kl, &ku,
A, &lda, R,
C, rowcond, colcond, amax, info); }
292 void LAPACK<int,float>::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 293 {
SGBRFS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
295 void LAPACK<int,float>::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 296 {
SGESVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
CHARPTR_MACRO(EQUED), R,
C,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
299 void LAPACK<int,float>::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 303 void LAPACK<int,float>::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 304 {
SGEHRD_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info); }
307 void LAPACK<int,float>::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 315 void LAPACK<int,float>::SPEV(
const char& JOBZ,
const char& UPLO,
const int&
n,
float* AP,
float* W,
float* Z,
const int& ldz,
float* WORK,
int* info)
const 319 void LAPACK<int,float>::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 323 void LAPACK<int,float>::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 324 {
SSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, info); }
327 void LAPACK<int,float>::HEEV(
const char& JOBZ,
const char& UPLO,
const int&
n,
float*
A,
const int& lda,
float* W,
float* WORK,
const int& lwork,
float* ,
int* info)
const 331 void LAPACK<int,float>::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* ,
int* info)
const 332 {
SSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, info); }
343 void LAPACK<int, float>::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 344 {
SHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &
n, &ilo, &ihi, H, &ldh, WR, WI, Z, &ldz, WORK, &lwork, info); }
347 void LAPACK<int, float>::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 348 {
SGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info); }
351 void LAPACK<int, float>::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* ,
int* BWORK,
int* info)
const 353 int (*nullfptr)(
float*,
float*) = NULL;
354 const char sort =
'N';
355 SGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &
n,
A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
359 void LAPACK<int, float>::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 360 {
SGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, WORK, &lwork, info); }
362 void LAPACK<int, float>::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* ,
int* info)
const 364 GEEV (JOBVL, JOBVR,
n,
A, lda, WR, WI, VL, ldvl, VR, ldvr, WORK, lwork, info);
368 void LAPACK<int, float>::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* ,
int* info)
const 369 {
SGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &
n,
A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, info); }
372 void LAPACK<int,float>::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 373 {
SGEEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, info); }
376 void LAPACK<int,float>::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 377 {
SGGEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, BWORK, info); }
379 void LAPACK<int,float>::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* ,
int* IWORK,
int* BWORK,
int* info)
const 381 GGEVX(BALANC, JOBVL, JOBVR, SENSE,
n,
A, lda,
B, ldb, ALPHAR, ALPHAI, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, IWORK, BWORK, info);
384 void LAPACK<int, float>::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 385 {
SGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, info); }
388 void LAPACK<int, float>::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 389 {
STRSEN_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPQ), SELECT, &
n, T, &ldt, Q, &ldq, WR, WI, M, S, SEP, WORK, &lwork, IWORK, &liwork, info); }
392 void LAPACK<int, float>::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 393 {
STGSEN_F77(&ijob, &wantq, &wantz, SELECT, &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info); }
396 void LAPACK<int, float>::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 397 {
SGGES_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda,
B, &ldb, sdim, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, BWORK, info); }
400 void LAPACK<int, float>::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 401 {
SORMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info); }
404 void LAPACK<int, float>::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 405 {
SORM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, info); }
408 void LAPACK<int, float>::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 413 ORMQR (SIDE,
TRANS, m,
n, k,
A, lda, TAU,
C, ldc, WORK, lwork, info);
416 void LAPACK<int, float>::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 421 ORM2R (SIDE,
TRANS, M, N, K,
A, LDA, TAU,
C, LDC, WORK, INFO);
425 void LAPACK<int, float>::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 426 {
SORGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info); }
429 void LAPACK<int, float>::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 430 {
SORGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info); }
433 void LAPACK<int, float>::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 434 {
SORGHR_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info); }
437 void LAPACK<int, float>::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 438 {
SORMHR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &ilo, &ihi,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info); }
441 void LAPACK<int, float>::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 442 {
STREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info); }
445 void LAPACK<int, float>::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* ,
int* info)
const 447 std::vector<int> select(1);
448 const char whch =
'A';
449 STREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
452 void LAPACK<int, float>::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 456 void LAPACK<int, float>::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 457 {
STGEVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), SELECT, &
n, S, &lds, P, &ldp, VL, &ldvl, VR, &ldvr, &mm, M, WORK, info); }
471 void LAPACK<int, float>::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 474 #ifdef HAVE_TEUCHOS_LAPACKLARND 487 int LAPACK<int, float>::ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1,
const int& N2,
const int& N3,
const int& N4 )
const 489 unsigned int opts_length = OPTS.length();
491 std::string temp_NAME =
"s" + NAME;
492 if (temp_NAME.substr(1,2) ==
"he") {
493 temp_NAME.replace(1,2,
"sy");
495 unsigned int name_length = temp_NAME.length();
496 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
502 #if defined(HAVE_TEUCHOS_BLASFLOAT) 503 return SLAPY2_F77(&x, &y);
506 const float xabs = ST::magnitude(x);
507 const float yabs = ST::magnitude(y);
513 const float z_over_w = z/w;
514 return w*ST::squareroot( 1.0+(z_over_w*z_over_w));
528 void LAPACK<int, double>::PTTRS(
const int&
n,
const int& nrhs,
const double* d,
const double* e,
double*
B,
const int& ldb,
int* info)
const 536 void LAPACK<int, double>::POTRS(
const char& UPLO,
const int&
n,
const int& nrhs,
const double*
A,
const int& lda,
double*
B,
const int& ldb,
int* info)
const 544 void LAPACK<int, double>::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 548 void LAPACK<int, double>::POSV(
const char& UPLO,
const int&
n,
const int& nrhs,
double*
A,
const int& lda,
double*
B,
const int& ldb,
int* info)
const 556 void LAPACK<int, double>::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 557 {
DPORFS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
559 void LAPACK<int, double>::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 560 {
DPOSVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
CHARPTR_MACRO(EQUED), S,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
563 void LAPACK<int,double>::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 564 {
DGELS_F77(
CHAR_MACRO(
TRANS), &m, &
n, &nrhs,
A, &lda,
B, &ldb, WORK, &lwork, info); }
567 void LAPACK<int,double>::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 570 DGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, info);
574 void LAPACK<int,double>::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 575 {
DGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
578 void LAPACK<int,double>::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 579 {
DGGLSE_F77(&m, &
n, &p,
A, &lda,
B, &ldb,
C,
D, X, WORK, &lwork, info); }
582 void LAPACK<int,double>::GEQRF(
const int& m,
const int&
n,
double*
A,
const int& lda,
double* TAU,
double* WORK,
const int& lwork,
int* info)
const 583 {
DGEQRF_F77(&m, &
n,
A, &lda, TAU, WORK, &lwork, info); }
585 void LAPACK<int,double>::GEQR2 (
const int& m,
const int&
n,
double A[],
const int& lda,
double TAU[],
double WORK[],
int*
const info)
const 594 void LAPACK<int,double>::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 598 void LAPACK<int,double>::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 601 void LAPACK<int,double>::GEQP3(
const int& m,
const int&
n,
double*
A,
const int& lda,
int* jpvt,
double* TAU,
double* WORK,
const int& lwork,
double* RWORK,
int* info )
const 604 DGEQP3_F77(&m, &
n,
A, &lda, jpvt, TAU, WORK, &lwork, info);
614 const int& INCX)
const 619 void LAPACK<int,double>::GBTRF(
const int& m,
const int&
n,
const int& kl,
const int& ku,
double*
A,
const int& lda,
int* IPIV,
int* info)
const 623 void LAPACK<int,double>::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 624 {
DGBTRS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, IPIV,
B, &ldb, info); }
631 void LAPACK<int,double>::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 632 {
DGTTRS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs, dl, d, du, du2, IPIV,
B, &ldb, info); }
635 void LAPACK<int,double>::GETRI(
const int&
n,
double*
A,
const int& lda,
const int* IPIV,
double* WORK,
const int& lwork,
int* info)
const 664 void LAPACK<int,double>::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 668 void LAPACK<int,double>::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 669 {
DGBCON_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, IPIV, &anorm, rcond, WORK, IWORK, info); }
672 double LAPACK<int,double>::LANGB(
const char& NORM,
const int&
n,
const int& kl,
const int& ku,
const double*
A,
const int& lda,
double* WORK)
const 676 void LAPACK<int,double>::GESV(
const int&
n,
const int& nrhs,
double*
A,
const int& lda,
int* IPIV,
double*
B,
const int& ldb,
int* info)
const 680 void LAPACK<int,double>::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 681 {
DGEEQU_F77(&m, &
n,
A, &lda, R,
C, rowcond, colcond, amax, info); }
684 void LAPACK<int,double>::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 685 {
DGERFS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
688 void LAPACK<int,double>::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 689 {
DGBEQU_F77(&m, &
n, &kl, &ku,
A, &lda, R,
C, rowcond, colcond, amax, info); }
692 void LAPACK<int,double>::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 693 {
DGBRFS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
695 void LAPACK<int,double>::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 696 {
DGESVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
CHARPTR_MACRO(EQUED), R,
C,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, IWORK, info); }
699 void LAPACK<int,double>::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 703 void LAPACK<int, double>::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 704 {
DGEHRD_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info); }
707 void LAPACK<int,double>::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 715 void LAPACK<int,double>::SPEV(
const char& JOBZ,
const char& UPLO,
const int&
n,
double* AP,
double* W,
double* Z,
const int& ldz,
double* WORK,
int* info)
const 719 void LAPACK<int,double>::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 725 void LAPACK<int,double>::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 727 DSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, info);
731 void LAPACK<int,double>::HEEV(
const char& JOBZ,
const char& UPLO,
const int&
n,
double*
A,
const int& lda,
double* W,
double* WORK,
const int& lwork,
double* ,
int* info)
const 737 void LAPACK<int,double>::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* ,
int* info)
const 739 DSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, info);
743 void LAPACK<int,double>::STEQR(
const char& COMPZ,
const int&
n,
double*
D,
double*
E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const 747 void LAPACK<int,double>::PTEQR(
const char& COMPZ,
const int&
n,
double*
D,
double*
E,
double* Z,
const int& ldz,
double* WORK,
int* info)
const 751 void LAPACK<int, double>::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 753 DHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &
n, &ilo, &ihi, H, &ldh, WR, WI, Z, &ldz, WORK, &lwork, info);
757 void LAPACK<int, double>::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 759 DGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
763 void LAPACK<int, double>::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* ,
int* BWORK,
int* info)
const 767 const char sort =
'N';
768 DGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &
n,
A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
772 void LAPACK<int, double>::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 774 DGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
777 void LAPACK<int, double>::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* ,
int* info)
const 779 GEEV (JOBVL, JOBVR,
n,
A, lda, WR, WI, VL, ldvl, VR, ldvr, WORK, lwork, info);
783 void LAPACK<int, double>::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* ,
int* info)
const {
784 DGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &
n,
A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, info);
788 void LAPACK<int,double>::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 790 DGEEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, info);
794 void LAPACK<int, double>::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 796 DGGEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, IWORK, BWORK, info);
799 void LAPACK<int, double>::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* ,
int* IWORK,
int* BWORK,
int* info)
const 801 GGEVX(BALANC, JOBVL, JOBVR, SENSE,
n,
A, lda,
B, ldb, ALPHAR, ALPHAI, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, IWORK, BWORK, info);
804 void LAPACK<int, double>::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 806 DGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
809 void LAPACK<int, double>::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 810 {
DTRSEN_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPQ), SELECT, &
n, T, &ldt, Q, &ldq, WR, WI, M, S, SEP, WORK, &lwork, IWORK, &liwork, info); }
813 void LAPACK<int, double>::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 814 {
DTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &
n,
A, &lda,
B, &ldb, ALPHAR, ALPHAI, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info); }
817 void LAPACK<int, double>::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 818 {
DGGES_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda,
B, &ldb, sdim, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, BWORK, info); }
821 void LAPACK<int, double>::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 823 DORMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info);
826 void LAPACK<int, double>::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 828 DORM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, info);
831 void LAPACK<int, double>::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 836 ORMQR (SIDE,
TRANS, m,
n, k,
A, lda, TAU,
C, ldc, WORK, lwork, info);
839 void LAPACK<int, double>::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 844 ORM2R (SIDE,
TRANS, M, N, K,
A, LDA, TAU,
C, LDC, WORK, INFO);
847 void LAPACK<int, double>::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 849 DORGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info);
853 void LAPACK<int, double>::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 855 DORGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info);
859 void LAPACK<int, double>::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 861 DORGHR_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info);
865 void LAPACK<int, double>::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 867 DORMHR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &ilo, &ihi,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info);
871 void LAPACK<int, double>::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 873 DTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
877 void LAPACK<int, double>::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* ,
int* info)
const 879 std::vector<int> select(1);
880 const char whch =
'A';
881 DTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
884 void LAPACK<int, double>::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 890 void LAPACK<int, double>::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 891 {
DTGEVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), SELECT, &
n, S, &lds, P, &ldp, VL, &ldvl, VR, &ldvr, &mm, M, WORK, info); }
905 void LAPACK<int, double>::GEBAL(
const char& JOBZ,
const int&
n,
double*
A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const 911 void LAPACK<int, double>::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 917 #ifdef HAVE_TEUCHOS_LAPACKLARND 936 int LAPACK<int, double>::ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1,
const int& N2,
const int& N3,
const int& N4 )
const 938 unsigned int opts_length = OPTS.length();
940 std::string temp_NAME =
"d" + NAME;
941 if (temp_NAME.substr(1,2) ==
"he") {
942 temp_NAME.replace(1,2,
"sy");
944 unsigned int name_length = temp_NAME.length();
945 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
956 #ifdef HAVE_TEUCHOS_COMPLEX 961 void LAPACK<int, std::complex<float> >::PTTRF(
const int&
n, std::complex<float>* d, std::complex<float>* e,
int* info)
const 963 CPTTRF_F77(&
n,d,e,info);
967 void LAPACK<int, std::complex<float> >::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 969 CPTTRS_F77(&
n,&nrhs,d,e,
B,&ldb,info);
973 void LAPACK<int, std::complex<float> >::POTRF(
const char& UPLO,
const int&
n, std::complex<float>*
A,
const int& lda,
int* info)
const 979 void LAPACK<int, std::complex<float> >::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 981 CPOTRS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda,
B, &ldb, info);
985 void LAPACK<int, std::complex<float> >::POTRI(
const char& UPLO,
const int&
n, std::complex<float>*
A,
const int& lda,
int* info)
const 991 void LAPACK<int, std::complex<float> >::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 993 CPOCON_F77(
CHAR_MACRO(UPLO), &
n,
A, &lda, &anorm, rcond, WORK, RWORK, info);
997 void LAPACK<int, std::complex<float> >::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 999 CPOSV_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda,
B, &ldb, info);
1003 void LAPACK<int, std::complex<float> >::POEQU(
const int&
n,
const std::complex<float>*
A,
const int& lda,
float* S,
float* scond,
float* amax,
int* info)
const 1005 CPOEQU_F77(&
n,
A, &lda, S, scond, amax, info);
1009 void LAPACK<int, std::complex<float> >::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 1011 CPORFS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1014 void LAPACK<int, std::complex<float> >::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 1016 CPOSVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
CHARPTR_MACRO(EQUED), S,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
1020 void LAPACK<int,std::complex<float> >::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 1022 CGELS_F77(
CHAR_MACRO(
TRANS), &m, &
n, &nrhs,
A, &lda,
B, &ldb, WORK, &lwork, info);
1025 void LAPACK<int, std::complex<float> >::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 1027 CGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
1030 void LAPACK<int,std::complex<float> >::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 1032 CGEQRF_F77(&m, &
n,
A, &lda, TAU, WORK, &lwork, info);
1035 void LAPACK<int,std::complex<float> >::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 1037 CGEQR2_F77(&m, &
n,
A, &lda, TAU, WORK, info);
1040 void LAPACK<int,std::complex<float> >::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 1042 CUNGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info);
1045 void LAPACK<int,std::complex<float> >::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 1047 CUNMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info);
1050 void LAPACK<int,std::complex<float> >::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 1052 CUNM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &M, &N, &K,
A, &LDA, TAU,
C, &LDC, WORK, INFO);
1055 void LAPACK<int,std::complex<float> >::GETRF(
const int& m,
const int&
n, std::complex<float>*
A,
const int& lda,
int* IPIV,
int* info)
const 1057 CGETRF_F77(&m, &
n,
A, &lda, IPIV, info);
1060 void LAPACK<int,std::complex<float> >::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 1065 void LAPACK<int,std::complex<float> >::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 1066 { CLASCL_F77(
CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &
n,
A, &lda, info); }
1068 void LAPACK<int,std::complex<float> >::GEQP3(
const int& m,
const int&
n, std::complex<float>*
A,
const int& lda,
int* jpvt, std::complex<float>* TAU, std::complex<float>* WORK,
const int& lwork,
float* RWORK,
int* info )
const 1070 CGEQP3_F77(&m, &
n,
A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
1073 void LAPACK<int, std::complex<float> >::
1074 LASWP (
const int& N,
1075 std::complex<float>
A[],
1080 const int& INCX)
const 1082 CLASWP_F77(&N,
A, &LDA, &K1, &K2, IPIV, &INCX);
1085 void LAPACK<int,std::complex<float> >::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 1087 CGBTRF_F77(&m, &kl, &ku, &
n,
A, &lda, IPIV, info);
1091 void LAPACK<int,std::complex<float> >::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 1093 CGBTRS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, IPIV,
B, &ldb, info);
1097 void LAPACK<int,std::complex<float> >::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 1099 CGTTRF_F77(&
n, dl, d, du, du2, IPIV, info);
1103 void LAPACK<int,std::complex<float> >::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 1105 CGTTRS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs, dl, d, du, du2, IPIV,
B, &ldb, info);
1109 void LAPACK<int,std::complex<float> >::GETRI(
const int&
n, std::complex<float>*
A,
const int& lda,
const int* IPIV, std::complex<float>* WORK,
const int& lwork,
int* info)
const 1111 CGETRI_F77(&
n,
A, &lda, IPIV, WORK, &lwork, info);
1116 LAPACK<int, std::complex<float> >::LATRS (
const char& UPLO,
1121 std::complex<float>*
A,
1123 std::complex<float>* X,
1142 void LAPACK<int,std::complex<float> >::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 1144 CGECON_F77(
CHAR_MACRO(NORM), &
n,
A, &lda, &anorm, rcond, WORK, RWORK, info);
1148 void LAPACK<int,std::complex<float> >::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 1150 CGBCON_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
1154 float LAPACK<int,std::complex<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 1156 return( CLANGB_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, WORK) );
1160 void LAPACK<int,std::complex<float> >::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 1162 CGESV_F77(&
n, &nrhs,
A, &lda, IPIV,
B, &ldb, info);
1166 void LAPACK<int,std::complex<float> >::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 1168 CGEEQU_F77(&m, &
n,
A, &lda, R,
C, rowcond, colcond, amax, info);
1172 void LAPACK<int,std::complex<float> >::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 1174 CGERFS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1178 void LAPACK<int,std::complex<float> >::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 1180 CGBEQU_F77(&m, &
n, &kl, &ku,
A, &lda, R,
C, rowcond, colcond, amax, info);
1184 void LAPACK<int,std::complex<float> >::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 1186 CGBRFS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1189 void LAPACK<int,std::complex<float> >::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 1191 CGESVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
CHARPTR_MACRO(EQUED), R,
C,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
1195 void LAPACK<int,std::complex<float> >::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 1197 CGEHRD_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info);
1201 void LAPACK<int,std::complex<float> >::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 1207 void LAPACK<int,std::complex<float> >::TRTRI(
const char& UPLO,
const char& DIAG,
const int&
n,
const std::complex<float>*
A,
const int& lda,
int* info)
const 1213 void LAPACK<int,std::complex<float> >::STEQR(
const char& COMPZ,
const int&
n,
float*
D,
float*
E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const 1215 CSTEQR_F77(
CHAR_MACRO(COMPZ), &
n,
D,
E, Z, &ldz, WORK, info);
1219 void LAPACK<int,std::complex<float> >::PTEQR(
const char& COMPZ,
const int&
n,
float*
D,
float*
E, std::complex<float>* Z,
const int& ldz,
float* WORK,
int* info)
const 1221 CPTEQR_F77(
CHAR_MACRO(COMPZ), &
n,
D,
E, Z, &ldz, WORK, info);
1225 void LAPACK<int,std::complex<float> >::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 1231 void LAPACK<int,std::complex<float> >::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 1233 CHEGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, RWORK, info);
1237 void LAPACK<int, std::complex<float> >::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 1239 CHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &
n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
1243 void LAPACK<int, std::complex<float> >::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 1245 CGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1249 void LAPACK<int, std::complex<float> >::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 1251 int (*nullfptr)(std::complex<float>*) = NULL;
1252 std::vector< std::complex<float> > W(
n);
1253 const char sort =
'N';
1254 CGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &
n,
A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1255 for (
int i=0; i<
n; i++) {
1256 WR[i] = W[i].real();
1257 WI[i] = W[i].imag();
1262 void LAPACK<int, std::complex<float> >::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 1264 CGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1267 void LAPACK<int, std::complex<float> >::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 1269 std::vector<std::complex<float> > w (
n);
1270 std::complex<float>* w_rawPtr = (
n == 0) ? NULL : &w[0];
1271 GEEV (JOBVL, JOBVR,
n,
A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
1275 for (
int k = 0; k <
n; ++k) {
1276 WR[k] = w[k].real ();
1277 WI[k] = w[k].imag ();
1282 void LAPACK<int, std::complex<float> >::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 {
1283 CGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &
n,
A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
1287 void LAPACK<int, std::complex<float> >::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 1289 CGEEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda, W, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, info);
1293 void LAPACK<int, std::complex<float> >::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 1295 CGGEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda,
B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, IWORK, BWORK, info);
1298 void LAPACK<int, std::complex<float> >::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 1300 std::vector<std::complex<float> > w (
n);
1301 std::complex<float>* w_rawPtr = (
n == 0) ? NULL : &w[0];
1302 GGEVX(BALANC, JOBVL, JOBVR, SENSE,
n,
A, lda,
B, ldb, w_rawPtr, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, RWORK, IWORK, BWORK, info);
1306 for (
int k = 0; k <
n; ++k) {
1307 ALPHAR[k] = w[k].real ();
1308 ALPHAI[k] = w[k].imag ();
1314 void LAPACK<int, std::complex<float> >::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 1316 CTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1320 void LAPACK<int, std::complex<float> >::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 1322 std::vector<int> select(1);
1323 const char& whch =
'A';
1324 CTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1327 void LAPACK<int, std::complex<float> >::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 1329 CTREXC_F77(
CHAR_MACRO(COMPQ), &
n, T, &ldt, Q, &ldq, ifst, ilst, info);
1333 void LAPACK<int, std::complex<float> >::LARTG(
const std::complex<float>
f,
const std::complex<float>
g,
float* c, std::complex<float>* s, std::complex<float>* r )
const 1335 CLARTG_F77(&
f, &
g, c, s, r);
1339 void LAPACK<int, std::complex<float> >::LARFG(
const int&
n, std::complex<float>* alpha, std::complex<float>* x,
const int& incx, std::complex<float>* tau )
const 1341 CLARFG_F77(&
n, alpha, x, &incx, tau);
1344 void LAPACK<int, std::complex<float> >::GEBAL(
const char& JOBZ,
const int&
n, std::complex<float>*
A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const 1346 CGEBAL_F77(
CHAR_MACRO(JOBZ),&
n,
A, &lda, ilo, ihi, scale, info);
1350 void LAPACK<int, std::complex<float> >::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 1356 #ifdef HAVE_TEUCHOS_LAPACKLARND 1357 std::complex<float> LAPACK<int, std::complex<float> >::LARND(
const int& idist,
int* seed )
const 1359 return(CLARND_F77(&idist, seed));
1363 void LAPACK<int, std::complex<float> >::LARNV(
const int& idist,
int* seed,
const int&
n, std::complex<float>* v )
const 1365 CLARNV_F77(&idist, seed, &
n, v);
1369 int LAPACK<int, std::complex<float> >::ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1,
const int& N2,
const int& N3,
const int& N4 )
const 1371 unsigned int opts_length = OPTS.length();
1372 std::string temp_NAME =
"c" + NAME;
1373 unsigned int name_length = temp_NAME.length();
1374 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
1382 void LAPACK<int, std::complex<double> >::PTTRF(
const int&
n, std::complex<double>* d, std::complex<double>* e,
int* info)
const 1384 ZPTTRF_F77(&
n,d,e,info);
1388 void LAPACK<int, std::complex<double> >::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 1390 ZPTTRS_F77(&
n,&nrhs,d,e,
B,&ldb,info);
1394 void LAPACK<int, std::complex<double> >::POTRF(
const char& UPLO,
const int&
n, std::complex<double>*
A,
const int& lda,
int* info)
const 1400 void LAPACK<int, std::complex<double> >::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 1402 ZPOTRS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda,
B, &ldb, info);
1406 void LAPACK<int, std::complex<double> >::POTRI(
const char& UPLO,
const int&
n, std::complex<double>*
A,
const int& lda,
int* info)
const 1412 void LAPACK<int, std::complex<double> >::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 1414 ZPOCON_F77(
CHAR_MACRO(UPLO), &
n,
A, &lda, &anorm, rcond, WORK, RWORK, info);
1418 void LAPACK<int, std::complex<double> >::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 1420 ZPOSV_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda,
B, &ldb, info);
1424 void LAPACK<int, std::complex<double> >::POEQU(
const int&
n,
const std::complex<double>*
A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const 1426 ZPOEQU_F77(&
n,
A, &lda, S, scond, amax, info);
1430 void LAPACK<int, std::complex<double> >::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 1432 ZPORFS_F77(
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1435 void LAPACK<int, std::complex<double> >::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 1437 ZPOSVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(UPLO), &
n, &nrhs,
A, &lda, AF, &ldaf,
CHARPTR_MACRO(EQUED), S,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
1441 void LAPACK<int,std::complex<double> >::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 1443 ZGELS_F77(
CHAR_MACRO(
TRANS), &m, &
n, &nrhs,
A, &lda,
B, &ldb, WORK, &lwork, info);
1447 void LAPACK<int, std::complex<double> >::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 1449 ZGELSS_F77(&m, &
n, &nrhs,
A, &lda,
B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
1453 void LAPACK<int,std::complex<double> >::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 1455 ZGEQRF_F77(&m, &
n,
A, &lda, TAU, WORK, &lwork, info);
1458 void LAPACK<int,std::complex<double> >::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 1460 ZGEQR2_F77(&m, &
n,
A, &lda, TAU, WORK, info);
1463 void LAPACK<int,std::complex<double> >::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 1465 ZUNGQR_F77( &m, &
n, &k,
A, &lda, TAU, WORK, &lwork, info);
1469 void LAPACK<int,std::complex<double> >::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 1471 ZUNMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &m, &
n, &k,
A, &lda, TAU,
C, &ldc, WORK, &lwork, info);
1474 void LAPACK<int,std::complex<double> >::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 1476 ZUNM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(
TRANS), &M, &N, &K,
A, &LDA, TAU,
C, &LDC, WORK, INFO);
1479 void LAPACK<int,std::complex<double> >::GETRF(
const int& m,
const int&
n, std::complex<double>*
A,
const int& lda,
int* IPIV,
int* info)
const 1481 ZGETRF_F77(&m, &
n,
A, &lda, IPIV, info);
1485 void LAPACK<int,std::complex<double> >::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 1491 void LAPACK<int,std::complex<double> >::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 1492 { ZLASCL_F77(
CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &
n,
A, &lda, info); }
1494 void LAPACK<int,std::complex<double> >::GEQP3(
const int& m,
const int&
n, std::complex<double>*
A,
const int& lda,
int* jpvt, std::complex<double>* TAU, std::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info )
const 1496 ZGEQP3_F77(&m, &
n,
A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
1499 void LAPACK<int, std::complex<double> >::
1500 LASWP (
const int& N,
1501 std::complex<double>
A[],
1506 const int& INCX)
const 1508 ZLASWP_F77(&N,
A, &LDA, &K1, &K2, IPIV, &INCX);
1511 void LAPACK<int,std::complex<double> >::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 1513 ZGBTRF_F77(&m, &
n, &kl, &ku,
A, &lda, IPIV, info);
1517 void LAPACK<int,std::complex<double> >::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 1519 ZGBTRS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, IPIV,
B, &ldb, info);
1523 void LAPACK<int,std::complex<double> >::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 1525 ZGTTRF_F77(&
n, dl, d, du, du2, IPIV, info);
1529 void LAPACK<int,std::complex<double> >::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 1531 ZGTTRS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs, dl, d, du, du2, IPIV,
B, &ldb, info);
1535 void LAPACK<int,std::complex<double> >::GETRI(
const int&
n, std::complex<double>*
A,
const int& lda,
const int* IPIV, std::complex<double>* WORK,
const int& lwork,
int* info)
const 1537 ZGETRI_F77(&
n,
A, &lda, IPIV, WORK, &lwork, info);
1541 LAPACK<int, std::complex<double> >::LATRS (
const char& UPLO,
1546 std::complex<double>*
A,
1548 std::complex<double>* X,
1566 void LAPACK<int,std::complex<double> >::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 1568 ZGECON_F77(
CHAR_MACRO(NORM), &
n,
A, &lda, &anorm, rcond, WORK, RWORK, info);
1572 void LAPACK<int,std::complex<double> >::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 1574 ZGBCON_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
1578 double LAPACK<int,std::complex<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 1580 return( ZLANGB_F77(
CHAR_MACRO(NORM), &
n, &kl, &ku,
A, &lda, WORK) );
1584 void LAPACK<int,std::complex<double> >::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 1586 ZGESV_F77(&
n, &nrhs,
A, &lda, IPIV,
B, &ldb, info);
1590 void LAPACK<int,std::complex<double> >::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 1592 ZGEEQU_F77(&m, &
n,
A, &lda, R,
C, rowcond, colcond, amax, info);
1596 void LAPACK<int,std::complex<double> >::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 1598 ZGERFS_F77(
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1602 void LAPACK<int,std::complex<double> >::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 1604 ZGBEQU_F77(&m, &
n, &kl, &ku,
A, &lda, R,
C, rowcond, colcond, amax, info);
1608 void LAPACK<int,std::complex<double> >::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 1610 ZGBRFS_F77(
CHAR_MACRO(
TRANS), &
n, &kl, &ku, &nrhs,
A, &lda, AF, &ldaf, IPIV,
B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1613 void LAPACK<int,std::complex<double> >::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 1615 ZGESVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(
TRANS), &
n, &nrhs,
A, &lda, AF, &ldaf, IPIV,
CHARPTR_MACRO(EQUED), R,
C,
B, &ldb, X, &ldx, rcond, FERR, BERR, WORK, RWORK, info);
1619 void LAPACK<int,std::complex<double> >::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 1621 ZGEHRD_F77(&
n, &ilo, &ihi,
A, &lda, TAU, WORK, &lwork, info);
1625 void LAPACK<int,std::complex<double> >::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 1631 void LAPACK<int,std::complex<double> >::TRTRI(
const char& UPLO,
const char& DIAG,
const int&
n,
const std::complex<double>*
A,
const int& lda,
int* info)
const 1637 void LAPACK<int,std::complex<double> >::STEQR(
const char& COMPZ,
const int&
n,
double*
D,
double*
E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const 1639 ZSTEQR_F77(
CHAR_MACRO(COMPZ), &
n,
D,
E, Z, &ldz, WORK, info);
1643 void LAPACK<int,std::complex<double> >::PTEQR(
const char& COMPZ,
const int&
n,
double*
D,
double*
E, std::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const 1645 ZPTEQR_F77(
CHAR_MACRO(COMPZ), &
n,
D,
E, Z, &ldz, WORK, info);
1649 void LAPACK<int,std::complex<double> >::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 1655 void LAPACK<int,std::complex<double> >::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 1657 ZHEGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &
n,
A, &lda,
B, &ldb, W, WORK, &lwork, RWORK, info);
1661 void LAPACK<int, std::complex<double> >::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 1663 ZHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &
n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
1667 void LAPACK<int, std::complex<double> >::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 1669 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &
n,
A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1673 void LAPACK<int, std::complex<double> >::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 1675 int (*nullfptr)(std::complex<double>*) = NULL;
1676 std::vector< std::complex<double> > W(
n);
1677 const char sort =
'N';
1678 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &
n,
A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1679 for (
int i=0; i<
n; i++) {
1680 WR[i] = W[i].real();
1681 WI[i] = W[i].imag();
1686 void LAPACK<int, std::complex<double> >::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 1688 ZGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &
n,
A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1692 void LAPACK<int, std::complex<double> >::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 1694 std::vector<std::complex<double> > w (
n);
1695 std::complex<double>* w_rawPtr = (
n == 0) ? NULL : &w[0];
1696 GEEV (JOBVL, JOBVR,
n,
A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
1700 for (
int k = 0; k <
n; ++k) {
1701 WR[k] = w[k].real ();
1702 WI[k] = w[k].imag ();
1708 void LAPACK<int, std::complex<double> >::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 {
1709 ZGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &
n,
A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
1712 void LAPACK<int, std::complex<double> >::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 1714 ZGEEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda, W, VL, &ldvl, VR, &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, info);
1717 void LAPACK<int, std::complex<double> >::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 1719 ZGGEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &
n,
A, &lda,
B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, &lwork, RWORK, IWORK, BWORK, info);
1722 void LAPACK<int, std::complex<double> >::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 1724 std::vector<std::complex<double> > w (
n);
1725 std::complex<double>* w_rawPtr = (
n == 0) ? NULL : &w[0];
1726 GGEVX(BALANC, JOBVL, JOBVR, SENSE,
n,
A, lda,
B, ldb, w_rawPtr, BETA, VL, ldvl, VR, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV, WORK, lwork, RWORK, IWORK, BWORK, info);
1730 for (
int k = 0; k <
n; ++k) {
1731 ALPHAR[k] = w[k].real ();
1732 ALPHAI[k] = w[k].imag ();
1737 void LAPACK<int, std::complex<double> >::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 1739 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1743 void LAPACK<int, std::complex<double> >::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 1745 std::vector<int> select(1);
1746 const char& whch =
'A';
1747 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &
n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1750 void LAPACK<int, std::complex<double> >::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 1752 ZTREXC_F77(
CHAR_MACRO(COMPQ), &
n, T, &ldt, Q, &ldq, ifst, ilst, info);
1755 void LAPACK<int, std::complex<double> >::LARTG(
const std::complex<double>
f,
const std::complex<double>
g,
double* c, std::complex<double>* s, std::complex<double>* r )
const 1757 ZLARTG_F77(&
f, &
g, c, s, r);
1761 void LAPACK<int, std::complex<double> >::LARFG(
const int&
n, std::complex<double>* alpha, std::complex<double>* x,
const int& incx, std::complex<double>* tau )
const 1763 ZLARFG_F77(&
n, alpha, x, &incx, tau);
1766 void LAPACK<int, std::complex<double> >::GEBAL(
const char& JOBZ,
const int&
n, std::complex<double>*
A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const 1768 ZGEBAL_F77(
CHAR_MACRO(JOBZ),&
n,
A, &lda, ilo, ihi, scale, info);
1772 void LAPACK<int, std::complex<double> >::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 1778 #ifdef HAVE_TEUCHOS_LAPACKLARND 1779 std::complex<double> LAPACK<int, std::complex<double> >::LARND(
const int& idist,
int* seed )
const 1781 return(ZLARND_F77(&idist, seed));
1785 void LAPACK<int, std::complex<double> >::LARNV(
const int& idist,
int* seed,
const int&
n, std::complex<double>* v )
const 1787 ZLARNV_F77(&idist, seed, &
n, v);
1791 int LAPACK<int, std::complex<double> >::ILAENV(
const int& ispec,
const std::string& NAME,
const std::string& OPTS,
const int& N1,
const int& N2,
const int& N3,
const int& N4 )
const 1793 unsigned int opts_length = OPTS.length();
1794 std::string temp_NAME =
"z" + NAME;
1795 unsigned int name_length = temp_NAME.length();
1796 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
1801 #endif // HAVE_TEUCHOS_COMPLEX 1804 #ifdef HAVE_TEUCHOSCORE_QUADMATH 1809 GEQRF(
const int& m,
const int&
n, __float128*
A,
const int& lda, __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const 1811 Teuchos::Details::Lapack128 lapack;
1812 lapack.GEQRF (m,
n,
A, lda, TAU, WORK, lwork, info);
1816 GEQR2(
const int& m,
const int&
n, __float128
A[],
const int& lda, __float128 TAU[], __float128 WORK[],
int*
const info)
const 1818 Teuchos::Details::Lapack128 lapack;
1819 lapack.GEQR2 (m,
n,
A, lda, TAU, WORK, info);
1823 GETRF(
const int& m,
const int&
n, __float128*
A,
const int& lda,
int* IPIV,
int* info)
const 1825 Teuchos::Details::Lapack128 lapack;
1826 lapack.GETRF (m,
n,
A, lda, IPIV, info);
1830 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 1832 Teuchos::Details::Lapack128 lapack;
1833 lapack.GETRS (
TRANS,
n, nrhs,
A, lda, IPIV,
B, ldb, info);
1837 GETRI (
const int&
n, __float128*
A,
const int& lda,
const int* IPIV, __float128* WORK,
const int& lwork,
int* info)
const 1839 Teuchos::Details::Lapack128 lapack;
1840 lapack.GETRI (
n,
A, lda, const_cast<int*> (IPIV), WORK, lwork, info);
1844 LASWP (
const int& N, __float128
A[],
const int& LDA,
const int& K1,
const int& K2,
const int IPIV[],
const int& INCX)
const 1846 Teuchos::Details::Lapack128 lapack;
1847 lapack.LASWP (N,
A, LDA, K1, K2, IPIV, INCX);
1851 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 1853 Teuchos::Details::Lapack128 lapack;
1854 lapack.ORM2R (SIDE,
TRANS, m,
n, k,
A, lda, TAU,
C, ldc, WORK, info);
1858 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 1860 Teuchos::Details::Lapack128 lapack;
1861 lapack.ORGQR (m,
n, k,
A, lda, TAU, WORK, lwork, info);
1865 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 1867 Teuchos::Details::Lapack128 lapack;
1868 lapack.UNGQR (m,
n, k,
A, lda, TAU, WORK, lwork, info);
1872 LARFG(
const int&
n, __float128* alpha, __float128* x,
const int& incx, __float128* tau )
const 1874 Teuchos::Details::Lapack128 lapack;
1875 lapack.LARFG (
n, alpha, x, incx, tau);
1879 LAPY2 (
const __float128 x,
const __float128 y)
const 1881 Teuchos::Details::Lapack128 lapack;
1882 return lapack.LAPY2 (x, y);
1886 GBTRF (
const int& m,
const int&
n,
const int& kl,
const int& ku,
1887 __float128*
A,
const int& lda,
int* IPIV,
int* info)
const 1889 Teuchos::Details::Lapack128 lapack;
1890 return lapack.GBTRF (m,
n, kl, ku,
A, lda, IPIV, info);
1894 GBTRS (
const char&
TRANS,
const int&
n,
const int& kl,
const int& ku,
1895 const int& nrhs,
const __float128*
A,
const int& lda,
const int* IPIV,
1896 __float128*
B,
const int& ldb,
int* info)
const 1898 Teuchos::Details::Lapack128 lapack;
1899 return lapack.GBTRS (
TRANS,
n, kl, ku, nrhs,
A, lda, IPIV,
B, ldb, info);
1903 LASCL (
const char& TYPE,
const int& kl,
const int& ku,
const __float128 cfrom,
1904 const __float128 cto,
const int& m,
const int&
n, __float128*
A,
1905 const int& lda,
int* info)
const 1907 Teuchos::Details::Lapack128 lapack;
1908 return lapack.LASCL (TYPE, kl, ku, cfrom, cto, m,
n,
A, lda, info);
1913 #endif // HAVE_TEUCHOSCORE_QUADMATH void PREFIX SLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int *N, float *A, const int *LDA, float *X, float *SCALE, float *CNORM, int *INFO)
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 PREFIX SLARFG_F77(const int *n, float *alpha, float *x, const int *incx, float *tau)
void PREFIX SGEHRD_F77(const int *n, const int *ilo, const int *ihi, float *A, const int *lda, float *tau, float *work, const int *lwork, int *info)
void PREFIX SGEQP3_F77(const int *M, const int *N, float *A, const int *LDA, int *JPVT, float *TAU, float *WORK, const int *LWORK, int *INFO)
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 PREFIX SGESVD_F77(Teuchos_fcd, Teuchos_fcd, 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, int *info)
void PREFIX SORMQR_F77(Teuchos_fcd, Teuchos_fcd, 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)
void POSVX(const char &FACT, const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, char *EQUED, ScalarType *S, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the Cholesky factorization to compute the solution to a real system of linear equations A*X=B...
void 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 PREFIX DHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, 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)
void TGEVC(const char &SIDE, const char &HOWMNY, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *S, const OrdinalType &lds, ScalarType *P, const OrdinalType &ldp, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info) const
void PREFIX SPOEQU_F77(const int *n, const float *a, const int *lda, float *s, float *scond, float *amax, int *info)
void PREFIX DORMHR_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DPOEQU_F77(const int *n, const double *a, const int *lda, double *s, double *scond, double *amax, int *info)
void PREFIX SGEQR2_F77(const int *const m, const int *const n, float a[], const int *const lda, float tau[], float work[], int *const info)
void PREFIX DTREVC_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX STREVC_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DGBEQU_F77(const int *m, const int *n, const int *kl, const int *ku, const double *a, const int *lda, double *r, double *c, double *rowcnd, double *colcnd, double *amax, int *info)
void PREFIX DORMQR_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX SSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, float *ap, float *w, float *z, const int *ldz, float *work, int *info)
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 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 PREFIX DLARTG_F77(const double *f, const double *g, double *c, double *s, double *r)
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
Declaration and definition of Teuchos::Details::Lapack128, a partial implementation of Teuchos::LAPAC...
void PREFIX DPOTRF_F77(Teuchos_fcd, const int *n, double *a, const int *lda, int *info)
void PREFIX DGTTRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const double *dl, const double *d, const double *du, const double *du2, const int *ipiv, double *x, const int *ldx, int *info)
void PREFIX DGEQRF_F77(const int *m, const int *n, double *a, const int *lda, double *tau, double *work, const int *lwork, int *info)
void PREFIX SPTTRS_F77(const int *n, const int *nrhs, const float *d, const float *e, float *x, const int *ldx, int *info)
void PREFIX SGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, 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)
void GEQP3(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *jpvt, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS...
void GBEQU(const OrdinalType &m, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, MagnitudeType *R, MagnitudeType *C, MagnitudeType *rowcond, MagnitudeType *colcond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n banded matrix A and reduce its con...
void PREFIX SORM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int *const M, const int *const N, const int *const K, const float A[], const int *const LDA, const float TAU[], float C[], const int *const LDC, float WORK[], int *const INFO)
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 PREFIX DGECON_F77(Teuchos_fcd norm, const int *n, const double *a, const int *lda, const double *anorm, double *rcond, double *work, int *iwork, int *info)
void PREFIX SGECON_F77(Teuchos_fcd norm, const int *n, const float *a, const int *lda, const float *anorm, float *rcond, float *work, int *iwork, int *info)
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 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 PREFIX STRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const float *a, const int *lda, int *info)
void PREFIX DGEQP3_F77(const int *M, const int *N, double *A, const int *LDA, int *JPVT, double *TAU, double *WORK, const int *LWORK, int *INFO)
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 PREFIX SGTTRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const float *dl, const float *d, const float *du, const float *du2, const int *ipiv, float *x, const int *ldx, int *info)
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
void GESVX(const char &FACT, const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, OrdinalType *IPIV, char *EQUED, ScalarType *R, ScalarType *C, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the LU factorization to compute the solution to a real system of linear equations A*X=B...
void PREFIX DSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, double *ap, double *w, double *z, const int *ldz, double *work, int *info)
void PREFIX DSYGV_F77(const int *itype, Teuchos_fcd, Teuchos_fcd, const int *n, double *a, const int *lda, double *B, const int *ldb, double *w, double *work, const int *lwork, int *info)
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 PREFIX SSTEQR_F77(Teuchos_fcd, const int *n, float *D, float *E, float *Z, const int *ldz, float *work, int *info)
void PREFIX DPTTRF_F77(const int *n, double *d, double *e, int *info)
void PREFIX DGGEV_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DGEHRD_F77(const int *n, const int *ilo, const int *ihi, double *A, const int *lda, double *tau, double *work, const int *lwork, int *info)
void PREFIX SGEES_F77(Teuchos_fcd, Teuchos_fcd, 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)
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 PREFIX SSYTRD_F77(Teuchos_fcd, const int *n, float *a, const int *lda, float *D, float *E, float *tau, float *work, const int *lwork, int *info)
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 PREFIX DGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, 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)
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 PREFIX SGELSS_F77(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)
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 PREFIX DSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, double *a, const int *lda, double *w, double *work, const int *lwork, int *info)
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 GESV(const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is factored through GETRF a...
void PREFIX SLASCL_F77(Teuchos_fcd, const int *kl, const int *ku, const float *cfrom, const float *cto, const int *m, const int *n, const float *a, const int *lda, int *info)
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 ...
double PREFIX DLARND_F77(const int *idist, int *seed)
float PREFIX SLAMCH_F77(Teuchos_fcd)
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...
void PREFIX DTRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, const double *a, const int *lda, double *b, const int *ldb, int *info)
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 ...
double PREFIX DLAPY2_F77(const double *x, const double *y)
double PREFIX DLAMCH_F77(Teuchos_fcd)
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...
The Templated LAPACK wrappers.
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 PREFIX SPOTRI_F77(Teuchos_fcd, const int *n, float *a, const int *lda, int *info)
This structure defines some basic traits for a scalar field type.
void PREFIX DGBTRF_F77(const int *m, const int *n, const int *kl, const int *ku, double *a, const int *lda, int *ipiv, int *info)
void TREXC(const char &COMPQ, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, OrdinalType *ifst, OrdinalType *ilst, ScalarType *WORK, OrdinalType *info) const
void 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 PREFIX SPOTRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const float *a, const int *lda, float *x, const int *ldx, int *info)
void PREFIX DPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, double *a, const int *lda, double *af, const int *ldaf, Teuchos_nonconst_fcd, double *s, double *b, const int *ldb, double *x, const int *ldx, double *rcond, double *ferr, double *berr, double *work, int *iwork, int *info)
void PREFIX DPTEQR_F77(Teuchos_fcd, const int *n, double *D, double *E, double *Z, const int *ldz, double *work, int *info)
void PREFIX SGGEV_F77(Teuchos_fcd, Teuchos_fcd, 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)
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
#define CHAR_MACRO(char_var)
void PREFIX DORM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int *const M, const int *const N, const int *const K, const double A[], const int *const LDA, const double TAU[], double C[], const int *const LDC, double WORK[], int *const INFO)
void PREFIX DSTEQR_F77(Teuchos_fcd, const int *n, double *D, double *E, double *Z, const int *ldz, double *work, int *info)
double PREFIX DLANGB_F77(Teuchos_fcd norm, const int *n, const int *kl, const int *ku, const double *a, const int *lda, double *work)
void PREFIX DGETRI_F77(const int *n, double *a, const int *lda, const int *ipiv, double *work, const int *lwork, int *info)
void PREFIX DGEEQU_F77(const int *m, const int *n, const double *a, const int *lda, double *r, double *c, double *rowcnd, double *colcnd, double *amax, int *info)
ScalarType LAMCH(const char &CMACH) const
Determines machine parameters for floating point characteristics.
void PREFIX SGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, 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)
Templated interface class to LAPACK routines.
void PREFIX DGEBAL_F77(Teuchos_fcd, const int *n, double *a, const int *lda, int *ilo, int *ihi, double *scale, int *info)
void PREFIX SPORFS_F77(Teuchos_fcd, 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)
void PREFIX DPOTRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const double *a, const int *lda, double *x, const int *ldx, int *info)
void PREFIX SGBTRS_F77(Teuchos_fcd, const int *n, const int *kl, const int *ku, const int *nrhs, const float *a, const int *lda, const int *ipiv, float *x, const int *ldx, int *info)
void PREFIX SGBCON_F77(Teuchos_fcd 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)
void PREFIX DTREXC_F77(Teuchos_fcd, const int *n, double *t, const int *ldt, double *q, const int *ldq, int *ifst, int *ilst, double *work, int *info)
void PREFIX SGEEV_F77(Teuchos_fcd, Teuchos_fcd, 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)
void GGLSE(const OrdinalType &m, const OrdinalType &n, const OrdinalType &p, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *C, ScalarType *D, ScalarType *X, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Solves the linear equality-constrained least squares (LSE) problem where A is an m by n matrix...
void LARFG(const OrdinalType &n, ScalarType *alpha, ScalarType *x, const OrdinalType &incx, ScalarType *tau) const
Generates an elementary reflector of order n that zeros out the last n-1 components of the input vect...
void 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 PORFS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
void 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
ScalarType LARND(const OrdinalType &idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
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 GTTRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *dl, const ScalarType *d, const ScalarType *du, const ScalarType *du2, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B or A^H*X=B with a tridiagonal matrix A using the ...
void PREFIX SGTTRF_F77(const int *n, float *dl, float *d, float *du, float *du2, int *ipiv, int *info)
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 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 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 PREFIX DGEES_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DGEEV_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DTRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const double *a, const int *lda, int *info)
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.
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 PREFIX DGESV_F77(const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *x, const int *ldx, int *info)
void PREFIX DGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n, double *a, const int *lda, double *alphar, double *alphai, 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)
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 GEHRD(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real general matrix A to upper Hessenberg form by orthogonal similarity transformations...
void PREFIX STREXC_F77(Teuchos_fcd, const int *n, float *t, const int *ldt, float *q, const int *ldq, int *ifst, int *ilst, float *work, int *info)
ScalarType LAPY2(const ScalarType &x, const ScalarType &y) const
Computes x^2 + y^2 safely, to avoid overflow.
void PREFIX STGSEN_F77(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)
void PREFIX SGBEQU_F77(const int *m, const int *n, const int *kl, const int *ku, const float *a, const int *lda, float *r, float *c, float *rowcnd, float *colcnd, float *amax, int *info)
#define TEUCHOS_MAX(x, y)
void PREFIX DGEQR2_F77(const int *const m, const int *const n, double a[], const int *const lda, double tau[], double work[], int *const info)
void PREFIX SGETRI_F77(const int *n, float *a, const int *lda, const int *ipiv, float *work, const int *lwork, int *info)
void PREFIX SGETRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const float *a, const int *lda, const int *ipiv, float *x, const int *ldx, int *info)
void PREFIX DLASCL_F77(Teuchos_fcd, const int *kl, const int *ku, const double *cfrom, const double *cto, const int *m, const int *n, const double *a, const int *lda, int *info)
void PREFIX SLARNV_F77(const int *idist, int *seed, const int *n, float *v)
void PREFIX SGEEQU_F77(const int *m, const int *n, const float *a, const int *lda, float *r, float *c, float *rowcnd, float *colcnd, float *amax, int *info)
void PREFIX SGERFS_F77(Teuchos_fcd, 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)
void PREFIX DGBCON_F77(Teuchos_fcd 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)
void PREFIX SGESV_F77(const int *n, const int *nrhs, float *a, const int *lda, int *ipiv, float *x, const int *ldx, int *info)
void PREFIX DTRSEN_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX SGGLSE_F77(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)
void PREFIX SORGQR_F77(const int *m, const int *n, const int *k, float *a, const int *lda, const float *tau, float *work, const int *lwork, int *info)
void PREFIX DGERFS_F77(Teuchos_fcd, 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)
void PREFIX STGEVC_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX SGBTRF_F77(const int *m, const int *n, const int *kl, const int *ku, float *a, const int *lda, int *ipiv, int *info)
void PREFIX DLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int *N, double *A, const int *LDA, double *X, double *SCALE, double *CNORM, int *INFO)
void PREFIX DGELS_F77(Teuchos_fcd ch, 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)
void ORGHR(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Generates a real orthogonal matrix Q which is the product of ihi-ilo elementary reflectors of order n...
void PREFIX DGETRS_F77(Teuchos_fcd, const int *n, const int *nrhs, const double *a, const int *lda, const int *ipiv, double *x, const int *ldx, int *info)
void PREFIX SSYGV_F77(const int *itype, Teuchos_fcd, Teuchos_fcd, const int *n, float *a, const int *lda, float *B, const int *ldb, float *w, float *work, const int *lwork, int *info)
void PREFIX DPOSV_F77(Teuchos_fcd, const int *n, const int *nrhs, double *a, const int *lda, double *x, const int *ldx, int *info)
float PREFIX SLANGB_F77(Teuchos_fcd norm, const int *n, const int *kl, const int *ku, const float *a, const int *lda, float *work)
void PREFIX SPOSV_F77(Teuchos_fcd, const int *n, const int *nrhs, float *a, const int *lda, float *x, const int *ldx, int *info)
void PREFIX SLASWP_F77(const int *N, float A[], const int *LDA, const int *K1, const int *K2, const int IPIV[], const int *INCX)
int(* gees_nullfptr_t)(double *, double *)
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 PREFIX SGBRFS_F77(Teuchos_fcd, 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)
void PREFIX SORMHR_F77(Teuchos_fcd, Teuchos_fcd, 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)
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 PREFIX DTGEVC_F77(Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX SPOTRF_F77(Teuchos_fcd, const int *n, float *a, const int *lda, int *info)
void PREFIX DGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, double *a, const int *lda, double *af, const int *ldaf, int *ipiv, Teuchos_nonconst_fcd, 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)
void PREFIX SGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *ilo, const int *ihi, const float *scale, const int *m, float *V, const int *ldv, int *info)
void PREFIX DPOTRI_F77(Teuchos_fcd, const int *n, double *a, const int *lda, int *info)
void PREFIX DLARNV_F77(const int *idist, int *seed, const int *n, double *v)
void PREFIX DGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *ilo, const int *ihi, const double *scale, const int *m, double *V, const int *ldv, int *info)
void PREFIX DSYTRD_F77(Teuchos_fcd, const int *n, double *a, const int *lda, double *D, double *E, double *tau, double *work, const int *lwork, int *info)
void PREFIX SGEBAL_F77(Teuchos_fcd, const int *n, float *a, const int *lda, int *ilo, int *ihi, float *scale, int *info)
void SYTRD(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *D, ScalarType *E, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real symmetric matrix A to tridiagonal form by orthogonal similarity transformations.
void 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 PREFIX DGBRFS_F77(Teuchos_fcd, 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)
void PREFIX SORGHR_F77(const int *n, const int *ilo, const int *ihi, float *a, const int *lda, const float *tau, float *work, const int *lwork, int *info)
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 PREFIX SGELS_F77(Teuchos_fcd ch, 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)
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 PREFIX DGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, 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)
void LARNV(const OrdinalType &idist, OrdinalType *seed, const OrdinalType &n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
void PREFIX DORGQR_F77(const int *m, const int *n, const int *k, double *a, const int *lda, const double *tau, double *work, const int *lwork, int *info)
void PREFIX DPOCON_F77(Teuchos_fcd, const int *n, const double *a, const int *lda, const double *anorm, double *rcond, double *work, int *iwork, int *info)
Defines basic traits for the scalar field type.
void PREFIX DLARFG_F77(const int *n, double *alpha, double *x, const int *incx, double *tau)
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 PREFIX STRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, const float *a, const int *lda, float *b, const int *ldb, int *info)
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 PREFIX DGBTRS_F77(Teuchos_fcd, const int *n, const int *kl, const int *ku, const int *nrhs, const double *a, const int *lda, const int *ipiv, double *x, const int *ldx, int *info)
void PREFIX SGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, float *a, const int *lda, float *af, const int *ldaf, int *ipiv, Teuchos_nonconst_fcd, 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)
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.
#define CHARPTR_MACRO(charptr_var)
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 PREFIX DGGLSE_F77(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)
void PREFIX SSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, float *a, const int *lda, float *w, float *work, const int *lwork, int *info)
void PREFIX DPORFS_F77(Teuchos_fcd, 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)
void PREFIX DTGSEN_F77(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)
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 PREFIX SGEQRF_F77(const int *m, const int *n, float *a, const int *lda, float *tau, float *work, const int *lwork, int *info)
void STEQR(const char &COMPZ, const OrdinalType &n, MagnitudeType *D, MagnitudeType *E, ScalarType *Z, const OrdinalType &ldz, MagnitudeType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal n by n matrix A usi...
void 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 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 PREFIX SGETRF_F77(const int *m, const int *n, float *a, const int *lda, int *ipiv, int *info)
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 PREFIX SLARTG_F77(const float *f, const float *g, float *c, float *s, float *r)
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 ORMHR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Overwrites the general real m by n matrix C with the product of C and Q, which is a product of ihi-il...
void PREFIX DGELSS_F77(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)
void PREFIX DPTTRS_F77(const int *n, const int *nrhs, const double *d, const double *e, double *x, const int *ldx, int *info)
void PREFIX SPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int *n, const int *nrhs, float *a, const int *lda, float *af, const int *ldaf, Teuchos_nonconst_fcd, float *s, float *b, const int *ldb, float *x, const int *ldx, float *rcond, float *ferr, float *berr, float *work, int *iwork, int *info)
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 PREFIX SPTEQR_F77(Teuchos_fcd, const int *n, float *D, float *E, float *Z, const int *ldz, float *work, int *info)
void GETRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general m by n matrix A using partial pivoting with row interchange...
void PREFIX DGESVD_F77(Teuchos_fcd, Teuchos_fcd, 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, int *info)
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...
#define TEUCHOS_MIN(x, y)
void PREFIX SHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, 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)
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.
int PREFIX ILAENV_F77(const int *ispec, const char *name, const char *opts, const int *N1, const int *N2, const int *N3, const int *N4, unsigned int name_length, unsigned int opts_length)
void PREFIX DGTTRF_F77(const int *n, double *dl, double *d, double *du, double *du2, int *ipiv, int *info)
void PREFIX SGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, 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)
void PREFIX DGETRF_F77(const int *m, const int *n, double *a, const int *lda, int *ipiv, int *info)
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...
float PREFIX SLARND_F77(const int *idist, int *seed)
void TRTRI(const char &UPLO, const char &DIAG, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
void POTRI(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of a real symmetric positive definite matrix A using the Cholesky factorization ...
void PREFIX SPTTRF_F77(const int *n, float *d, float *e, int *info)
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 PREFIX DORGHR_F77(const int *n, const int *ilo, const int *ihi, double *a, const int *lda, const double *tau, double *work, const int *lwork, int *info)
void PREFIX STRSEN_F77(Teuchos_fcd, Teuchos_fcd, 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)
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 PREFIX SPOCON_F77(Teuchos_fcd, const int *n, const float *a, const int *lda, const float *anorm, float *rcond, float *work, int *iwork, int *info)
void PREFIX DLASWP_F77(const int *N, double A[], const int *LDA, const int *K1, const int *K2, const int IPIV[], const int *INCX)
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