47 #ifdef HAVE_TEUCHOSCORE_QUADMATH
49 #endif // HAVE_TEUCHOSCORE_QUADMATH
50 #ifdef HAVE_TEUCHOS_LONG_DOUBLE
52 #endif // HAVE_TEUCHOS_LONG_DOUBLE
63 #if defined (INTEL_CXML)
64 #define CHAR_MACRO(char_var) &char_var, one
66 #define CHAR_MACRO(char_var) &char_var
72 #if defined (INTEL_CXML)
73 #define CHARPTR_MACRO(charptr_var) charptr_var, one
75 #define CHARPTR_MACRO(charptr_var) charptr_var
80 #if defined (INTEL_CXML)
90 const int* ispec,
const char* name,
const unsigned int& name_length,
91 const char* opts,
const unsigned int& opts_length,
92 const int* N1,
const int* N2,
const int* N3,
const int* N4 )
94 #if defined (INTEL_CXML)
95 return ILAENV_F77(ispec, name, name_length, opts, opts_length, N1, N2, N3, N4 );
97 return ILAENV_F77(ispec, name, opts, N1, N2, N3, N4, name_length, opts_length );
130 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
138 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
142 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
147 {
SPOEQU_F77(&n, A, &lda, S, scond, amax, info); }
149 void LAPACK<int, float>::PORFS(
const char& UPLO,
const int&
n,
const int& nrhs,
const float*
A,
const int& lda,
const float* AF,
const int& ldaf,
const float*
B,
const int& ldb,
float* X,
const int& ldx,
float* FERR,
float* BERR,
float* WORK,
int* IWORK,
int* info)
const
150 {
SPORFS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
152 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
153 {
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); }
156 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
157 {
SGELS_F77(
CHAR_MACRO(TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info); }
159 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
162 SGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info);
165 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
166 {
SGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
169 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
170 {
SGGLSE_F77(&m, &n, &p, A, &lda, B, &ldb, C, D, X, WORK, &lwork, info); }
173 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
174 {
SGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info); }
185 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
189 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
192 void LAPACK<int,float>::GEQP3 (
const int& m,
const int&
n,
float*
A,
const int& lda,
int* jpvt,
float* TAU,
float* WORK,
const int& lwork,
float* RWORK,
int* info)
const
195 SGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, info);
198 void LAPACK<int, float>::LASWP (
const int& N,
float*
A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
200 SLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX);
203 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
204 {
SGBTRF_F77(&m, &n, &kl, &ku, A, &lda, IPIV, info); }
207 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
208 {
SGBTRS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info); }
212 {
SGTTRF_F77(&n, dl, d, du, du2, IPIV, info); }
215 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
216 {
SGTTRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info); }
220 {
SGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info); }
222 void LAPACK<int, float>::LATRS (
const char& UPLO,
const char&
TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const float*
A,
const int& LDA,
float* X,
float* SCALE,
float* CNORM,
int* INFO)
const
224 SLATRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG),
CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
227 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
231 void LAPACK<int,float>::GBCON(
const char& NORM,
const int&
n,
const int& kl,
const int& ku,
const float*
A,
const int& lda,
const int* IPIV,
const float& anorm,
float* rcond,
float* WORK,
int* IWORK,
int* info)
const
232 {
SGBCON_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, IWORK, info); }
235 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
240 {
SGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info); }
243 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
244 {
SGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info); }
247 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
248 {
SGERFS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
251 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
252 {
SGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info); }
255 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
256 {
SGBRFS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
258 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
259 {
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); }
262 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
266 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
267 {
SGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info); }
270 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
278 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
282 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
286 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
287 {
SSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info); }
290 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
294 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
295 {
SSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info); }
306 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
307 {
SHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, WR, WI, Z, &ldz, WORK, &lwork, info); }
310 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
311 {
SGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info); }
314 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
316 int (*nullfptr)(
float*,
float*) = NULL;
317 const char sort =
'N';
318 SGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
322 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
323 {
SGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, WORK, &lwork, info); }
325 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
327 GEEV (JOBVL, JOBVR, n, A, lda, WR, WI, VL, ldvl, VR, ldvr, WORK, lwork, info);
331 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
332 {
SGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, info); }
335 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
336 {
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); }
339 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
340 {
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); }
342 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
344 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);
347 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
348 {
SGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, info); }
351 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
352 {
STRSEN_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPQ), SELECT, &n, T, &ldt, Q, &ldq, WR, WI, M, S, SEP, WORK, &lwork, IWORK, &liwork, info); }
355 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
356 {
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); }
359 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
360 {
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); }
363 void LAPACK<int, float>::ORMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const float* A,
const int& lda,
const float* TAU,
float*
C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const
364 {
SORMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info); }
367 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
368 {
SORM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, info); }
371 void LAPACK<int, float>::UNMQR(
const char& SIDE,
const char&
TRANS,
const int& m,
const int& n,
const int& k,
const float* A,
const int& lda,
const float* TAU,
float*
C,
const int& ldc,
float* WORK,
const int& lwork,
int* info)
const
374 ORMQR (SIDE, TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, lwork, info);
377 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
382 ORM2R (SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO);
386 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
387 {
SORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info); }
390 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
391 {
SORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info); }
394 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
395 {
SORGHR_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info); }
398 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
399 {
SORMHR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &ilo, &ihi, A, &lda, TAU, C, &ldc, WORK, &lwork, info); }
402 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
403 {
STREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info); }
406 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
408 std::vector<int> select(1);
409 const char whch =
'A';
410 STREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
413 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
417 void LAPACK<int, float>::TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
const float* S,
const int& lds,
const float* P,
const int& ldp,
float* VL,
const int& ldvl,
float* VR,
const int& ldvr,
const int& mm,
int* M,
float* WORK,
int* info)
const
418 {
STGEVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), SELECT, &n, S, &lds, P, &ldp, VL, &ldvl, VR, &ldvr, &mm, M, WORK, info); }
428 void LAPACK<int, float>::GEBAL(
const char& JOBZ,
const int& n,
float* A,
const int& lda,
int* ilo,
int* ihi,
float* scale,
int* info)
const
432 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
435 #ifdef HAVE_TEUCHOS_LAPACKLARND
448 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
450 unsigned int opts_length = OPTS.length();
452 std::string temp_NAME =
"s" + NAME;
453 if (temp_NAME.substr(1,2) ==
"he") {
454 temp_NAME.replace(1,2,
"sy");
456 unsigned int name_length = temp_NAME.length();
457 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
463 #if defined(HAVE_TEUCHOS_BLASFLOAT)
464 return SLAPY2_F77(&x, &y);
467 const float xabs = ST::magnitude(x);
468 const float yabs = ST::magnitude(y);
474 const float z_over_w = z/w;
475 return w*ST::squareroot( 1.0+(z_over_w*z_over_w));
487 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
495 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
503 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
507 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
511 void LAPACK<int, double>::POEQU(
const int& n,
const double* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const
512 {
DPOEQU_F77(&n, A, &lda, S, scond, amax, info); }
515 void LAPACK<int, double>::PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* A,
const int& lda,
const double* AF,
const int& ldaf,
const double* B,
const int& ldb,
double* X,
const int& ldx,
double* FERR,
double* BERR,
double* WORK,
int* IWORK,
int* info)
const
516 {
DPORFS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
518 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
519 {
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); }
522 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
523 {
DGELS_F77(
CHAR_MACRO(TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info); }
526 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
529 DGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info);
533 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
534 {
DGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, info); }
537 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
538 {
DGGLSE_F77(&m, &n, &p, A, &lda, B, &ldb, C, D, X, WORK, &lwork, info); }
541 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
542 {
DGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info); }
544 void LAPACK<int,double>::GEQR2 (
const int& m,
const int& n,
double* A,
const int& lda,
double* TAU,
double* WORK,
int*
const info)
const
553 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
557 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
560 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
563 DGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, info);
566 void LAPACK<int, double>::LASWP (
const int& N,
double* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
567 {
DLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX); }
569 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
570 {
DGBTRF_F77(&m, &n, &kl, &ku, A, &lda, IPIV, info); }
573 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
574 {
DGBTRS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info); }
578 {
DGTTRF_F77(&n, dl, d, du, du2, IPIV, info); }
581 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
582 {
DGTTRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info); }
585 void LAPACK<int,double>::GETRI(
const int& n,
double* A,
const int& lda,
const int* IPIV,
double* WORK,
const int& lwork,
int* info)
const
586 {
DGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info); }
588 void LAPACK<int, double>::LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const double* A,
const int& LDA,
double* X,
double* SCALE,
double* CNORM,
int* INFO)
const
590 DLATRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG),
CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
593 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
597 void LAPACK<int,double>::GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const double* A,
const int& lda,
const int* IPIV,
const double& anorm,
double* rcond,
double* WORK,
int* IWORK,
int* info)
const
598 {
DGBCON_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, IWORK, info); }
601 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
605 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
606 {
DGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info); }
609 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
610 {
DGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info); }
613 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
614 {
DGERFS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
617 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
618 {
DGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info); }
621 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
622 {
DGBRFS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, IWORK, info); }
624 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
625 {
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); }
628 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
632 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
633 {
DGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info); }
636 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
640 void LAPACK<int,double>::TRTRI(
const char& UPLO,
const char& DIAG,
const int& n,
double* A,
const int& lda,
int* info)
const
644 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
648 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
654 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
656 DSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info);
660 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
666 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
668 DSYGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, info);
672 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
676 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
680 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
682 DHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, WR, WI, Z, &ldz, WORK, &lwork, info);
686 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
688 DGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
692 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
696 const char sort =
'N';
697 DGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, WR, WI, VS, &ldvs, WORK, &lwork, BWORK, info);
701 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
703 DGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, WR, WI, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
706 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
708 GEEV (JOBVL, JOBVR, n, A, lda, WR, WI, VL, ldvl, VR, ldvr, WORK, lwork, info);
712 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 {
713 DGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, info);
717 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
719 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);
723 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
725 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);
728 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
730 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);
733 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
735 DGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHAR, ALPHAI, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, info);
738 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
739 {
DTRSEN_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPQ), SELECT, &n, T, &ldt, Q, &ldq, WR, WI, M, S, SEP, WORK, &lwork, IWORK, &liwork, info); }
742 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
743 {
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); }
746 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
747 {
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); }
750 void LAPACK<int, double>::ORMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const
752 DORMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
755 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
757 DORM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, info);
760 void LAPACK<int, double>::UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const double* A,
const int& lda,
const double* TAU,
double* C,
const int& ldc,
double* WORK,
const int& lwork,
int* info)
const
763 ORMQR (SIDE, TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, lwork, info);
766 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
771 ORM2R (SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO);
774 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
776 DORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
780 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
782 DORGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
786 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
788 DORGHR_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
792 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
794 DORMHR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &ilo, &ihi, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
798 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
800 DTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
804 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
806 std::vector<int> select(1);
807 const char whch =
'A';
808 DTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, info);
811 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
817 void LAPACK<int, double>::TGEVC(
const char& SIDE,
const char& HOWMNY,
const int* SELECT,
const int& n,
const double* S,
const int& lds,
const double* P,
const int& ldp,
double* VL,
const int& ldvl,
double* VR,
const int& ldvr,
const int& mm,
int* M,
double* WORK,
int* info)
const
818 {
DTGEVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), SELECT, &n, S, &lds, P, &ldp, VL, &ldvl, VR, &ldvr, &mm, M, WORK, info); }
832 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
838 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
844 #ifdef HAVE_TEUCHOS_LAPACKLARND
863 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
865 unsigned int opts_length = OPTS.length();
867 std::string temp_NAME =
"d" + NAME;
868 if (temp_NAME.substr(1,2) ==
"he") {
869 temp_NAME.replace(1,2,
"sy");
871 unsigned int name_length = temp_NAME.length();
872 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
883 #ifdef HAVE_TEUCHOS_COMPLEX
888 void LAPACK<int, std::complex<float> >::PTTRF(
const int& n,
float* d, std::complex<float>* e,
int* info)
const
890 CPTTRF_F77(&n,d,e,info);
894 void LAPACK<int, std::complex<float> >::PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const float* d,
const std::complex<float>* e, std::complex<float>* B,
const int& ldb,
int* info)
const
896 CPTTRS_F77(
CHAR_MACRO(UPLO),&n,&nrhs,d,e,B,&ldb,info);
900 void LAPACK<int, std::complex<float> >::POTRF(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const
902 CPOTRF_F77(
CHAR_MACRO(UPLO), &n, A, &lda, info);
906 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
908 CPOTRS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
912 void LAPACK<int, std::complex<float> >::POTRI(
const char& UPLO,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const
914 CPOTRI_F77(
CHAR_MACRO(UPLO), &n, A, &lda, info);
918 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
920 CPOCON_F77(
CHAR_MACRO(UPLO), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
924 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
926 CPOSV_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
930 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
932 CPOEQU_F77(&n, A, &lda, S, scond, amax, info);
936 void LAPACK<int, std::complex<float> >::PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* AF,
const int& ldaf,
const std::complex<float>* B,
const int& ldb, std::complex<float>* X,
const int& ldx,
float* FERR,
float* BERR, std::complex<float>* WORK,
float* RWORK,
int* info)
const
938 CPORFS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
941 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
943 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);
947 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
949 CGELS_F77(
CHAR_MACRO(TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info);
952 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
954 CGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
957 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
959 CGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info);
962 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
964 CGEQR2_F77(&m, &n, A, &lda, TAU, WORK, info);
967 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
969 CUNGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
972 void LAPACK<int,std::complex<float> >::UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const std::complex<float>* A,
const int& lda,
const std::complex<float>* TAU, std::complex<float>* C,
const int& ldc, std::complex<float>* WORK,
const int& lwork,
int* info)
const
974 CUNMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
977 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
979 CUNM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &M, &N, &K, A, &LDA, TAU, C, &LDC, WORK, INFO);
982 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
984 CGETRF_F77(&m, &n, A, &lda, IPIV, info);
987 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
989 CGETRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, IPIV, B, &ldb, info);
992 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
993 { CLASCL_F77(
CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, A, &lda, info); }
995 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
997 CGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
1000 void LAPACK<int, std::complex<float> >::
1001 LASWP (
const int& N,
1002 std::complex<float>* A,
1007 const int& INCX)
const
1009 CLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX);
1012 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
1014 CGBTRF_F77(&m, &kl, &ku, &n, A, &lda, IPIV, info);
1018 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
1020 CGBTRS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info);
1024 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
1026 CGTTRF_F77(&n, dl, d, du, du2, IPIV, info);
1030 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
1032 CGTTRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info);
1036 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
1038 CGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info);
1042 void LAPACK<int, std::complex<float> >::LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const std::complex<float>* A,
const int& LDA, std::complex<float>* X,
float* SCALE,
float* CNORM,
int* INFO)
const
1044 CLATRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG),
CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
1048 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
1050 CGECON_F77(
CHAR_MACRO(NORM), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
1054 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,
const int* IPIV,
const float& anorm,
float* rcond, std::complex<float>* WORK,
float* RWORK,
int* info)
const
1056 CGBCON_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
1060 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
1062 return( CLANGB_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, WORK) );
1066 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
1068 CGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info);
1072 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
1074 CGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info);
1078 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
1080 CGERFS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1084 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
1086 CGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info);
1090 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
1092 CGBRFS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1095 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
1097 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);
1101 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
1103 CGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
1107 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
1113 void LAPACK<int,std::complex<float> >::TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, std::complex<float>* A,
const int& lda,
int* info)
const
1119 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
1121 CSTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
1125 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
1127 CPTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
1131 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
1137 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
1139 CHEGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, RWORK, info);
1143 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
1145 CHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
1149 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
1151 CGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1155 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
1157 int (*nullfptr)(std::complex<float>*) = NULL;
1158 std::vector< std::complex<float> > W(n);
1159 const char sort =
'N';
1160 CGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1161 for (
int i=0; i<
n; i++) {
1162 WR[i] = W[i].real();
1163 WI[i] = W[i].imag();
1168 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
1170 CGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1173 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
1175 std::vector<std::complex<float> > w (n);
1176 std::complex<float>* w_rawPtr = (n == 0) ? NULL : &w[0];
1177 GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
1181 for (
int k = 0; k <
n; ++k) {
1182 WR[k] = w[k].real ();
1183 WI[k] = w[k].imag ();
1188 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 {
1189 CGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
1193 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
1195 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);
1199 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
1201 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);
1204 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
1206 std::vector<std::complex<float> > w (n);
1207 std::complex<float>* w_rawPtr = (n == 0) ? NULL : &w[0];
1208 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);
1212 for (
int k = 0; k <
n; ++k) {
1213 ALPHAR[k] = w[k].real ();
1214 ALPHAI[k] = w[k].imag ();
1219 void LAPACK<int, std::complex<float> >::GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<float> *A,
const int& lda, std::complex<float> *B,
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float> *WORK,
const int& lwork,
float* RWORK,
int* info)
const
1221 CGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1224 void LAPACK<int, std::complex<float> >::GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<float>*, std::complex<float>*),
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* B,
const int& ldb,
int* sdim, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* VL,
const int& ldvl, std::complex<float>* VR,
const int& ldvr, std::complex<float>* WORK,
const int& lwork,
float* rwork,
int* bwork,
int* info )
const
1226 CGGES_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, B, &ldb, sdim, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, rwork, bwork, info);
1228 void LAPACK<int, std::complex<float> >::TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, std::complex<float>* A,
const int& lda, std::complex<float>* B,
const int& ldb, std::complex<float>* ALPHA, std::complex<float>* BETA, std::complex<float>* Q,
const int& ldq, std::complex<float>* Z,
const int& ldz,
int* M,
float* PL,
float* PR,
float* DIF, std::complex<float>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const
1230 CTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, A, &lda, B, &ldb, ALPHA, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info);
1233 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
1235 CTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1239 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
1241 std::vector<int> select(1);
1242 const char& whch =
'A';
1243 CTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1246 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
1248 CTREXC_F77(
CHAR_MACRO(COMPQ), &n, T, &ldt, Q, &ldq, ifst, ilst, info);
1252 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
1254 CLARTG_F77(&f, &g, c, s, r);
1258 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
1260 CLARFG_F77(&n, alpha, x, &incx, tau);
1263 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
1265 CGEBAL_F77(
CHAR_MACRO(JOBZ),&n, A, &lda, ilo, ihi, scale, info);
1269 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
1275 #ifdef HAVE_TEUCHOS_LAPACKLARND
1276 std::complex<float> LAPACK<int, std::complex<float> >::LARND(
const int& idist,
int* seed )
const
1278 float _Complex z = CLARND_F77(&idist, seed);
1279 return TEUCHOS_LAPACK_CONVERT_COMPLEX_FORTRAN_TO_CXX(
float, z);
1283 void LAPACK<int, std::complex<float> >::LARNV(
const int& idist,
int* seed,
const int& n, std::complex<float>* v )
const
1285 CLARNV_F77(&idist, seed, &n, v);
1289 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
1291 unsigned int opts_length = OPTS.length();
1292 std::string temp_NAME =
"c" + NAME;
1293 unsigned int name_length = temp_NAME.length();
1294 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
1302 void LAPACK<int, std::complex<double> >::PTTRF(
const int& n,
double* d, std::complex<double>* e,
int* info)
const
1304 ZPTTRF_F77(&n,d,e,info);
1308 void LAPACK<int, std::complex<double> >::PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* d,
const std::complex<double>* e, std::complex<double>* B,
const int& ldb,
int* info)
const
1310 ZPTTRS_F77(
CHAR_MACRO(UPLO),&n,&nrhs,d,e,B,&ldb,info);
1314 void LAPACK<int, std::complex<double> >::POTRF(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const
1316 ZPOTRF_F77(
CHAR_MACRO(UPLO), &n, A, &lda, info);
1320 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
1322 ZPOTRS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
1326 void LAPACK<int, std::complex<double> >::POTRI(
const char& UPLO,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const
1328 ZPOTRI_F77(
CHAR_MACRO(UPLO), &n, A, &lda, info);
1332 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
1334 ZPOCON_F77(
CHAR_MACRO(UPLO), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
1338 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
1340 ZPOSV_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, B, &ldb, info);
1344 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
1346 ZPOEQU_F77(&n, A, &lda, S, scond, amax, info);
1350 void LAPACK<int, std::complex<double> >::PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* AF,
const int& ldaf,
const std::complex<double>* B,
const int& ldb, std::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, std::complex<double>* WORK,
double* RWORK,
int* info)
const
1352 ZPORFS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, A, &lda, AF, &ldaf, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1355 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
1357 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);
1361 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
1363 ZGELS_F77(
CHAR_MACRO(TRANS), &m, &n, &nrhs, A, &lda, B, &ldb, WORK, &lwork, info);
1367 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
1369 ZGELSS_F77(&m, &n, &nrhs, A, &lda, B, &ldb, S, &rcond, rank, WORK, &lwork, rwork, info);
1373 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
1375 ZGEQRF_F77(&m, &n, A, &lda, TAU, WORK, &lwork, info);
1378 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
1380 ZGEQR2_F77(&m, &n, A, &lda, TAU, WORK, info);
1383 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
1385 ZUNGQR_F77( &m, &n, &k, A, &lda, TAU, WORK, &lwork, info);
1389 void LAPACK<int,std::complex<double> >::UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const std::complex<double>* A,
const int& lda,
const std::complex<double>* TAU, std::complex<double>* C,
const int& ldc, std::complex<double>* WORK,
const int& lwork,
int* info)
const
1391 ZUNMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k, A, &lda, TAU, C, &ldc, WORK, &lwork, info);
1394 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
1396 ZUNM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &M, &N, &K, A, &LDA, TAU, C, &LDC, WORK, INFO);
1399 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
1401 ZGETRF_F77(&m, &n, A, &lda, IPIV, info);
1405 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
1407 ZGETRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, IPIV, B, &ldb, info);
1411 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
1412 { ZLASCL_F77(
CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n, A, &lda, info); }
1414 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
1416 ZGEQP3_F77(&m, &n, A, &lda, jpvt, TAU, WORK, &lwork, RWORK, info);
1419 void LAPACK<int, std::complex<double> >::LASWP (
const int& N, std::complex<double>* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
1421 ZLASWP_F77(&N, A, &LDA, &K1, &K2, IPIV, &INCX);
1424 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
1426 ZGBTRF_F77(&m, &n, &kl, &ku, A, &lda, IPIV, info);
1430 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
1432 ZGBTRS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, IPIV, B, &ldb, info);
1436 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
1438 ZGTTRF_F77(&n, dl, d, du, du2, IPIV, info);
1442 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
1444 ZGTTRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, dl, d, du, du2, IPIV, B, &ldb, info);
1448 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
1450 ZGETRI_F77(&n, A, &lda, IPIV, WORK, &lwork, info);
1453 void LAPACK<int, std::complex<double> >::LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const std::complex<double>* A,
const int& LDA, std::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const
1455 ZLATRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG),
CHAR_MACRO(NORMIN), &N, A, &LDA, X, SCALE, CNORM, INFO);
1458 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
1460 ZGECON_F77(
CHAR_MACRO(NORM), &n, A, &lda, &anorm, rcond, WORK, RWORK, info);
1464 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,
const int* IPIV,
const double& anorm,
double* rcond, std::complex<double>* WORK,
double* RWORK,
int* info)
const
1466 ZGBCON_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, IPIV, &anorm, rcond, WORK, RWORK, info);
1470 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
1472 return( ZLANGB_F77(
CHAR_MACRO(NORM), &n, &kl, &ku, A, &lda, WORK) );
1476 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
1478 ZGESV_F77(&n, &nrhs, A, &lda, IPIV, B, &ldb, info);
1482 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
1484 ZGEEQU_F77(&m, &n, A, &lda, R, C, rowcond, colcond, amax, info);
1488 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
1490 ZGERFS_F77(
CHAR_MACRO(TRANS), &n, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1494 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
1496 ZGBEQU_F77(&m, &n, &kl, &ku, A, &lda, R, C, rowcond, colcond, amax, info);
1500 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
1502 ZGBRFS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs, A, &lda, AF, &ldaf, IPIV, B, &ldb, X, &ldx, FERR, BERR, WORK, RWORK, info);
1505 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
1507 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);
1511 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
1513 ZGEHRD_F77(&n, &ilo, &ihi, A, &lda, TAU, WORK, &lwork, info);
1517 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
1523 void LAPACK<int,std::complex<double> >::TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, std::complex<double>* A,
const int& lda,
int* info)
const
1529 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
1531 ZSTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
1535 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
1537 ZPTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E, Z, &ldz, WORK, info);
1541 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
1547 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
1549 ZHEGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n, A, &lda, B, &ldb, W, WORK, &lwork, RWORK, info);
1553 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
1555 ZHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &n, &ilo, &ihi, H, &ldh, W, Z, &ldz, WORK, &lwork, info);
1559 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
1561 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, sdim, W, VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1565 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
1567 int (*nullfptr)(std::complex<double>*) = NULL;
1568 std::vector< std::complex<double> > W(n);
1569 const char sort =
'N';
1570 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &n, A, &lda, sdim, &W[0], VS, &ldvs, WORK, &lwork, RWORK, BWORK, info);
1571 for (
int i=0; i<
n; i++) {
1572 WR[i] = W[i].real();
1573 WI[i] = W[i].imag();
1578 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
1580 ZGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, W, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1584 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
1586 std::vector<std::complex<double> > w (n);
1587 std::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
1588 GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
1592 for (
int k = 0; k <
n; ++k) {
1593 WR[k] = w[k].real ();
1594 WI[k] = w[k].imag ();
1600 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 {
1601 ZGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &n, A, &lda, S, U, &ldu, V, &ldv, WORK, &lwork, RWORK, info);
1604 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
1606 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);
1609 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
1611 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);
1614 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
1616 std::vector<std::complex<double> > w (n);
1617 std::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
1618 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);
1622 for (
int k = 0; k <
n; ++k) {
1623 ALPHAR[k] = w[k].real ();
1624 ALPHAI[k] = w[k].imag ();
1629 void LAPACK<int, std::complex<double> >::GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, std::complex<double> *A,
const int& lda, std::complex<double> *B,
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr, std::complex<double> *WORK,
const int& lwork,
double* RWORK,
int* info)
const
1631 ZGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n, A, &lda, B, &ldb, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, RWORK, info);
1634 void LAPACK<int, std::complex<double> >::GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<double>*, std::complex<double>*),
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* B,
const int& ldb,
int* sdim, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* VL,
const int& ldvl, std::complex<double>* VR,
const int& ldvr, std::complex<double>* WORK,
const int& lwork,
double* rwork,
int* bwork,
int* info )
const
1636 ZGGES_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SORT), ptr2func, &n, A, &lda, B, &ldb, sdim, ALPHA, BETA, VL, &ldvl, VR, &ldvr, WORK, &lwork, rwork, bwork, info);
1638 void LAPACK<int, std::complex<double> >::TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, std::complex<double>* A,
const int& lda, std::complex<double>* B,
const int& ldb, std::complex<double>* ALPHA, std::complex<double>* BETA, std::complex<double>* Q,
const int& ldq, std::complex<double>* Z,
const int& ldz,
int* M,
double* PL,
double* PR,
double* DIF, std::complex<double>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const
1640 ZTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n, A, &lda, B, &ldb, ALPHA, BETA, Q, &ldq, Z, &ldz, M, PL, PR, DIF, WORK, &lwork, IWORK, &liwork, info);
1643 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
1645 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1649 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
1651 std::vector<int> select(1);
1652 const char& whch =
'A';
1653 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &n, T, &ldt, VL, &ldvl, VR, &ldvr, &mm, m, WORK, RWORK, info);
1656 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
1658 ZTREXC_F77(
CHAR_MACRO(COMPQ), &n, T, &ldt, Q, &ldq, ifst, ilst, info);
1661 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
1663 ZLARTG_F77(&f, &g, c, s, r);
1667 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
1669 ZLARFG_F77(&n, alpha, x, &incx, tau);
1672 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
1674 ZGEBAL_F77(
CHAR_MACRO(JOBZ),&n, A, &lda, ilo, ihi, scale, info);
1678 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
1684 #ifdef HAVE_TEUCHOS_LAPACKLARND
1685 std::complex<double> LAPACK<int, std::complex<double> >::LARND(
const int& idist,
int* seed )
const
1687 double _Complex z = ZLARND_F77(&idist, seed);
1688 return TEUCHOS_LAPACK_CONVERT_COMPLEX_FORTRAN_TO_CXX(
double, z);
1692 void LAPACK<int, std::complex<double> >::LARNV(
const int& idist,
int* seed,
const int& n, std::complex<double>* v )
const
1694 ZLARNV_F77(&idist, seed, &n, v);
1698 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
1700 unsigned int opts_length = OPTS.length();
1701 std::string temp_NAME =
"z" + NAME;
1702 unsigned int name_length = temp_NAME.length();
1703 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
1710 void LAPACK<int, Kokkos::complex<double> >::PTTRF(
const int& n,
double* d, Kokkos::complex<double>* e,
int* info)
const
1712 ZPTTRF_F77(&n, d,
reinterpret_cast<std::complex<double>*
>(e), info);
1716 void LAPACK<int, Kokkos::complex<double> >::PTTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const double* d,
const Kokkos::complex<double>* e, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1718 ZPTTRS_F77(
CHAR_MACRO(UPLO), &n, &nrhs, d,
reinterpret_cast<const std::complex<double>*
>(e),
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1722 void LAPACK<int, Kokkos::complex<double> >::POTRF(
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const
1724 ZPOTRF_F77(
CHAR_MACRO(UPLO), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
1728 void LAPACK<int, Kokkos::complex<double> >::POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1730 ZPOTRS_F77(
CHAR_MACRO(UPLO), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1734 void LAPACK<int, Kokkos::complex<double> >::POTRI(
const char& UPLO,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const
1736 ZPOTRI_F77(
CHAR_MACRO(UPLO), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
1740 void LAPACK<int, Kokkos::complex<double> >::POCON(
const char& UPLO,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1742 ZPOCON_F77(
CHAR_MACRO(UPLO), &n,
reinterpret_cast<const std::complex<double>*
>(A), &lda, &anorm, rcond,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1746 void LAPACK<int, Kokkos::complex<double> >::POSV(
const char& UPLO,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1748 ZPOSV_F77(
CHAR_MACRO(UPLO), &n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1752 void LAPACK<int, Kokkos::complex<double> >::POEQU(
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
double* S,
double* scond,
double* amax,
int* info)
const
1754 ZPOEQU_F77(&n,
reinterpret_cast<const std::complex<double>*
>(A), &lda, S, scond, amax, info);
1758 void LAPACK<int, Kokkos::complex<double> >::PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1760 ZPORFS_F77(
CHAR_MACRO(UPLO), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf,
reinterpret_cast<const std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1763 void LAPACK<int, Kokkos::complex<double> >::POSVX(
const char& FACT,
const char& UPLO,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* AF,
const int& ldaf,
char* EQUED,
double* S, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1765 ZPOSVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(UPLO), &n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(AF), &ldaf,
CHARPTR_MACRO(EQUED), S,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(X), &ldx, rcond, FERR, BERR,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1769 void LAPACK<int,Kokkos::complex<double> >::GELS(
const char& TRANS,
const int& m,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1771 ZGELS_F77(
CHAR_MACRO(TRANS), &m, &n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1775 void LAPACK<int, Kokkos::complex<double> >::GELSS(
const int& m,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
double* S,
const double& rcond,
int* rank, Kokkos::complex<double>* WORK,
const int& lwork,
double* rwork,
int* info)
const
1777 ZGELSS_F77(&m, &n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, S, &rcond, rank,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, rwork, info);
1781 void LAPACK<int,Kokkos::complex<double> >::GEQRF(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1783 ZGEQRF_F77(&m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1786 void LAPACK<int,Kokkos::complex<double> >::GEQR2 (
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
int*
const info)
const
1788 ZGEQR2_F77(&m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(WORK), info);
1791 void LAPACK<int,Kokkos::complex<double> >::UNGQR(
const int& m,
const int& n,
const int& k, Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1793 ZUNGQR_F77( &m, &n, &k,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<const std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1797 void LAPACK<int,Kokkos::complex<double> >::UNMQR(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C,
const int& ldc, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1799 ZUNMQR_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &m, &n, &k,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<const std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(C), &ldc,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1802 void LAPACK<int,Kokkos::complex<double> >::UNM2R (
const char& SIDE,
const char& TRANS,
const int& M,
const int& N,
const int& K,
const Kokkos::complex<double>* A,
const int& LDA,
const Kokkos::complex<double>* TAU, Kokkos::complex<double>* C,
const int& LDC, Kokkos::complex<double>* WORK,
int*
const INFO)
const
1804 ZUNM2R_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(TRANS), &M, &N, &K,
reinterpret_cast<const std::complex<double>*
>(A), &LDA,
reinterpret_cast<const std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(C), &LDC,
reinterpret_cast<std::complex<double>*
>(WORK), INFO);
1807 void LAPACK<int,Kokkos::complex<double> >::GETRF(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const
1809 ZGETRF_F77(&m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, info);
1813 void LAPACK<int,Kokkos::complex<double> >::GETRS(
const char& TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1815 ZGETRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1819 void LAPACK<int,Kokkos::complex<double> >::LASCL(
const char& TYPE,
const int& kl,
const int& ku,
const double& cfrom,
const double& cto,
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const
1820 { ZLASCL_F77(
CHAR_MACRO(TYPE), &kl, &ku, &cfrom, &cto, &m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, info); }
1822 void LAPACK<int,Kokkos::complex<double> >::GEQP3(
const int& m,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* jpvt, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info )
const
1824 ZGEQP3_F77(&m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, jpvt,
reinterpret_cast<std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
1827 void LAPACK<int, Kokkos::complex<double> >::LASWP (
const int& N, Kokkos::complex<double>* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
1829 ZLASWP_F77(&N,
reinterpret_cast<std::complex<double>*
>(A), &LDA, &K1, &K2, IPIV, &INCX);
1832 void LAPACK<int,Kokkos::complex<double> >::GBTRF(
const int& m,
const int& n,
const int& kl,
const int& ku, Kokkos::complex<double>* A,
const int& lda,
int* IPIV,
int* info)
const
1834 ZGBTRF_F77(&m, &n, &kl, &ku,
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV, info);
1838 void LAPACK<int,Kokkos::complex<double> >::GBTRS(
const char& TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1840 ZGBTRS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1844 void LAPACK<int,Kokkos::complex<double> >::GTTRF(
const int& n, Kokkos::complex<double>* dl, Kokkos::complex<double>* d, Kokkos::complex<double>* du, Kokkos::complex<double>* du2,
int* IPIV,
int* info)
const
1846 ZGTTRF_F77(&n,
reinterpret_cast<std::complex<double>*
>(dl),
reinterpret_cast<std::complex<double>*
>(d),
reinterpret_cast<std::complex<double>*
>(du),
reinterpret_cast<std::complex<double>*
>(du2), IPIV, info);
1850 void LAPACK<int,Kokkos::complex<double> >::GTTRS(
const char& TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* dl,
const Kokkos::complex<double>* d,
const Kokkos::complex<double>* du,
const Kokkos::complex<double>* du2,
const int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1852 ZGTTRS_F77(
CHAR_MACRO(TRANS), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(dl),
reinterpret_cast<const std::complex<double>*
>(d),
reinterpret_cast<const std::complex<double>*
>(du),
reinterpret_cast<const std::complex<double>*
>(du2), IPIV,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1856 void LAPACK<int,Kokkos::complex<double> >::GETRI(
const int& n, Kokkos::complex<double>* A,
const int& lda,
const int* IPIV, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1858 ZGETRI_F77(&n,
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1861 void LAPACK<int, Kokkos::complex<double> >::LATRS (
const char& UPLO,
const char& TRANS,
const char& DIAG,
const char& NORMIN,
const int& N,
const Kokkos::complex<double>* A,
const int& LDA, Kokkos::complex<double>* X,
double* SCALE,
double* CNORM,
int* INFO)
const
1863 ZLATRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG),
CHAR_MACRO(NORMIN), &N,
reinterpret_cast<const std::complex<double>*
>(A), &LDA,
reinterpret_cast<std::complex<double>*
>(X), SCALE, CNORM, INFO);
1866 void LAPACK<int,Kokkos::complex<double> >::GECON(
const char& NORM,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1868 ZGECON_F77(
CHAR_MACRO(NORM), &n,
reinterpret_cast<const std::complex<double>*
>(A), &lda, &anorm, rcond,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1872 void LAPACK<int,Kokkos::complex<double> >::GBCON(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
const int* IPIV,
const double& anorm,
double* rcond, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1874 ZGBCON_F77(
CHAR_MACRO(NORM), &n, &kl, &ku,
reinterpret_cast<const std::complex<double>*
>(A), &lda, IPIV, &anorm, rcond,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1878 double LAPACK<int,Kokkos::complex<double> >::LANGB(
const char& NORM,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
double* WORK)
const
1880 return( ZLANGB_F77(
CHAR_MACRO(NORM), &n, &kl, &ku,
reinterpret_cast<const std::complex<double>*
>(A), &lda, WORK) );
1884 void LAPACK<int,Kokkos::complex<double> >::GESV(
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda,
int* IPIV, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1886 ZGESV_F77(&n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda, IPIV,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1890 void LAPACK<int,Kokkos::complex<double> >::GEEQU(
const int& m,
const int& n,
const Kokkos::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const
1892 ZGEEQU_F77(&m, &n,
reinterpret_cast<const std::complex<double>*
>(A), &lda, R, C, rowcond, colcond, amax, info);
1896 void LAPACK<int,Kokkos::complex<double> >::GERFS(
const char& TRANS,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1898 ZGERFS_F77(
CHAR_MACRO(TRANS), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf, IPIV,
reinterpret_cast<const std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1902 void LAPACK<int,Kokkos::complex<double> >::GBEQU(
const int& m,
const int& n,
const int& kl,
const int& ku,
const Kokkos::complex<double>* A,
const int& lda,
double* R,
double* C,
double* rowcond,
double* colcond,
double* amax,
int* info)
const
1904 ZGBEQU_F77(&m, &n, &kl, &ku,
reinterpret_cast<const std::complex<double>*
>(A), &lda, R, C, rowcond, colcond, amax, info);
1908 void LAPACK<int,Kokkos::complex<double> >::GBRFS(
const char& TRANS,
const int& n,
const int& kl,
const int& ku,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda,
const Kokkos::complex<double>* AF,
const int& ldaf,
const int* IPIV,
const Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1910 ZGBRFS_F77(
CHAR_MACRO(TRANS), &n, &kl, &ku, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<const std::complex<double>*
>(AF), &ldaf, IPIV,
reinterpret_cast<const std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(X), &ldx, FERR, BERR,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1913 void LAPACK<int,Kokkos::complex<double> >::GESVX(
const char& FACT,
const char& TRANS,
const int& n,
const int& nrhs, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* AF,
const int& ldaf,
int* IPIV,
char* EQUED,
double* R,
double* C, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* X,
const int& ldx,
double* rcond,
double* FERR,
double* BERR, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
1915 ZGESVX_F77(
CHAR_MACRO(FACT),
CHAR_MACRO(TRANS), &n, &nrhs,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(AF), &ldaf, IPIV,
CHARPTR_MACRO(EQUED), R, C,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(X), &ldx, rcond, FERR, BERR,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
1919 void LAPACK<int,Kokkos::complex<double> >::GEHRD(
const int& n,
const int& ilo,
const int& ihi, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* TAU, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1921 ZGEHRD_F77(&n, &ilo, &ihi,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(TAU),
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1925 void LAPACK<int,Kokkos::complex<double> >::TRTRS(
const char& UPLO,
const char& TRANS,
const char& DIAG,
const int& n,
const int& nrhs,
const Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* info)
const
1927 ZTRTRS_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(TRANS),
CHAR_MACRO(DIAG), &n, &nrhs,
reinterpret_cast<const std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, info);
1931 void LAPACK<int,Kokkos::complex<double> >::TRTRI(
const char& UPLO,
const char& DIAG,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* info)
const
1933 ZTRTRI_F77(
CHAR_MACRO(UPLO),
CHAR_MACRO(DIAG), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, info);
1937 void LAPACK<int,Kokkos::complex<double> >::STEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, Kokkos::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const
1939 ZSTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E,
reinterpret_cast<std::complex<double>*
>(Z), &ldz, WORK, info);
1943 void LAPACK<int,Kokkos::complex<double> >::PTEQR(
const char& COMPZ,
const int& n,
double* D,
double* E, Kokkos::complex<double>* Z,
const int& ldz,
double* WORK,
int* info)
const
1945 ZPTEQR_F77(
CHAR_MACRO(COMPZ), &n, D, E,
reinterpret_cast<std::complex<double>*
>(Z), &ldz, WORK, info);
1949 void LAPACK<int,Kokkos::complex<double> >::HEEV(
const char& JOBZ,
const char& UPLO,
const int& n, Kokkos::complex<double> * A,
const int& lda,
double* W, Kokkos::complex<double> * WORK,
const int& lwork,
double* RWORK,
int* info)
const
1951 ZHEEV_F77(
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, W,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
1955 void LAPACK<int,Kokkos::complex<double> >::HEGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n, Kokkos::complex<double> * A,
const int& lda, Kokkos::complex<double> * B,
const int& ldb,
double* W, Kokkos::complex<double> * WORK,
const int& lwork,
double* RWORK,
int* info)
const
1957 ZHEGV_F77(&itype,
CHAR_MACRO(JOBZ),
CHAR_MACRO(UPLO), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, W,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
1961 void LAPACK<int, Kokkos::complex<double> >::HSEQR(
const char& JOB,
const char& COMPZ,
const int& n,
const int& ilo,
const int& ihi, Kokkos::complex<double>* H,
const int& ldh, Kokkos::complex<double>* W, Kokkos::complex<double>* Z,
const int& ldz, Kokkos::complex<double>* WORK,
const int& lwork,
int* info)
const
1963 ZHSEQR_F77(
CHAR_MACRO(JOB),
CHAR_MACRO(COMPZ), &n, &ilo, &ihi,
reinterpret_cast<std::complex<double>*
>(H), &ldh,
reinterpret_cast<std::complex<double>*
>(W),
reinterpret_cast<std::complex<double>*
>(Z), &ldz,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, info);
1967 void LAPACK<int, Kokkos::complex<double> >::GEES(
const char& JOBVS,
const char& SORT,
int (*ptr2func)(std::complex<double>*),
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* sdim, Kokkos::complex<double>* W, Kokkos::complex<double>* VS,
const int& ldvs, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const
1969 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(SORT), ptr2func, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, sdim,
reinterpret_cast<std::complex<double>*
>(W),
reinterpret_cast<std::complex<double>*
>(VS), &ldvs,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, BWORK, info);
1973 void LAPACK<int, Kokkos::complex<double> >::GEES(
const char& JOBVS,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* sdim,
double* WR,
double* WI, Kokkos::complex<double>* VS,
const int& ldvs, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* BWORK,
int* info)
const
1975 int (*nullfptr)(std::complex<double>*) = NULL;
1976 std::vector< std::complex<double> > W(n);
1977 const char sort =
'N';
1978 ZGEES_F77(
CHAR_MACRO(JOBVS),
CHAR_MACRO(sort), nullfptr, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, sdim, &W[0],
reinterpret_cast<std::complex<double>*
>(VS), &ldvs,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, BWORK, info);
1979 for (
int i=0; i<
n; i++) {
1980 WR[i] = W[i].real();
1981 WI[i] = W[i].imag();
1986 void LAPACK<int, Kokkos::complex<double> >::GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const
1988 ZGEEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(W),
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
1992 void LAPACK<int, Kokkos::complex<double> >::GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double>* A,
const int& lda,
double* WR,
double* WI, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const
1994 std::vector<Kokkos::complex<double> > w (n);
1995 Kokkos::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
1996 GEEV (JOBVL, JOBVR, n, A, lda, w_rawPtr, VL, ldvl, VR, ldvr, WORK, lwork, RWORK, info);
2000 for (
int k = 0; k <
n; ++k) {
2001 WR[k] = w[k].real ();
2002 WI[k] = w[k].imag ();
2008 void LAPACK<int, Kokkos::complex<double> >::GESVD(
const char& JOBU,
const char& JOBVT,
const int& m,
const int& n, Kokkos::complex<double> * A,
const int& lda,
double* S, Kokkos::complex<double> * U,
const int& ldu, Kokkos::complex<double> * V,
const int& ldv, Kokkos::complex<double> * WORK,
const int& lwork,
double* RWORK,
int* info)
const {
2009 ZGESVD_F77(
CHAR_MACRO(JOBU),
CHAR_MACRO(JOBVT), &m, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda, S,
reinterpret_cast<std::complex<double>*
>(U), &ldu,
reinterpret_cast<std::complex<double>*
>(V), &ldv,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
2012 void LAPACK<int, Kokkos::complex<double> >::GEEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* W, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* SCALE,
double* abnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* info)
const
2014 ZGEEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(W),
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, ilo, ihi, SCALE, abnrm, RCONDE, RCONDV,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
2017 void LAPACK<int, Kokkos::complex<double> >::GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const
2019 ZGGEVX_F77(
CHAR_MACRO(BALANC),
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SENSE), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(ALPHA),
reinterpret_cast<std::complex<double>*
>(BETA),
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, RCONDE, RCONDV,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, IWORK, BWORK, info);
2022 void LAPACK<int, Kokkos::complex<double> >::GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
double* ALPHAR,
double* ALPHAI, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
int* ilo,
int* ihi,
double* lscale,
double* rscale,
double* abnrm,
double* bbnrm,
double* RCONDE,
double* RCONDV, Kokkos::complex<double>* WORK,
const int& lwork,
double* RWORK,
int* IWORK,
int* BWORK,
int* info)
const
2024 std::vector<Kokkos::complex<double> > w (n);
2025 Kokkos::complex<double>* w_rawPtr = (n == 0) ? NULL : &w[0];
2026 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);
2030 for (
int k = 0; k <
n; ++k) {
2031 ALPHAR[k] = w[k].real ();
2032 ALPHAI[k] = w[k].imag ();
2037 void LAPACK<int, Kokkos::complex<double> >::GGEV(
const char& JOBVL,
const char& JOBVR,
const int& n, Kokkos::complex<double> *A,
const int& lda, Kokkos::complex<double> *B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double> *WORK,
const int& lwork,
double* RWORK,
int* info)
const
2039 ZGGEV_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR), &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(ALPHA),
reinterpret_cast<std::complex<double>*
>(BETA),
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, RWORK, info);
2042 void LAPACK<int, Kokkos::complex<double> >::GGES(
const char& JOBVL,
const char& JOBVR,
const char& SORT,
int (*ptr2func)(std::complex<double>*, std::complex<double>*),
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb,
int* sdim, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr, Kokkos::complex<double>* WORK,
const int& lwork,
double* rwork,
int* bwork,
int* info )
const
2044 ZGGES_F77(
CHAR_MACRO(JOBVL),
CHAR_MACRO(JOBVR),
CHAR_MACRO(SORT), ptr2func, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb, sdim,
reinterpret_cast<std::complex<double>*
>(ALPHA),
reinterpret_cast<std::complex<double>*
>(BETA),
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, rwork, bwork, info);
2046 void LAPACK<int, Kokkos::complex<double> >::TGSEN(
const int& ijob,
const int& wantq,
const int& wantz,
const int* SELECT,
const int& n, Kokkos::complex<double>* A,
const int& lda, Kokkos::complex<double>* B,
const int& ldb, Kokkos::complex<double>* ALPHA, Kokkos::complex<double>* BETA, Kokkos::complex<double>* Q,
const int& ldq, Kokkos::complex<double>* Z,
const int& ldz,
int* M,
double* PL,
double* PR,
double* DIF, Kokkos::complex<double>* WORK,
const int& lwork,
int* IWORK,
const int& liwork,
int* info )
const
2048 ZTGSEN_F77(&ijob, &wantq, &wantz, SELECT, &n,
reinterpret_cast<std::complex<double>*
>(A), &lda,
reinterpret_cast<std::complex<double>*
>(B), &ldb,
reinterpret_cast<std::complex<double>*
>(ALPHA),
reinterpret_cast<std::complex<double>*
>(BETA),
reinterpret_cast<std::complex<double>*
>(Q), &ldq,
reinterpret_cast<std::complex<double>*
>(Z), &ldz, M, PL, PR, DIF,
reinterpret_cast<std::complex<double>*
>(WORK), &lwork, IWORK, &liwork, info);
2051 void LAPACK<int, Kokkos::complex<double> >::TREVC(
const char& SIDE,
const char& HOWMNY,
int* select,
const int& n,
const Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
2053 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(HOWMNY), select, &n,
reinterpret_cast<const std::complex<double>*
>(T), &ldt,
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, &mm, m,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
2057 void LAPACK<int, Kokkos::complex<double> >::TREVC(
const char& SIDE,
const int& n,
const Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* VL,
const int& ldvl, Kokkos::complex<double>* VR,
const int& ldvr,
const int& mm,
int* m, Kokkos::complex<double>* WORK,
double* RWORK,
int* info)
const
2059 std::vector<int> select(1);
2060 const char& whch =
'A';
2061 ZTREVC_F77(
CHAR_MACRO(SIDE),
CHAR_MACRO(whch), &select[0], &n,
reinterpret_cast<const std::complex<double>*
>(T), &ldt,
reinterpret_cast<std::complex<double>*
>(VL), &ldvl,
reinterpret_cast<std::complex<double>*
>(VR), &ldvr, &mm, m,
reinterpret_cast<std::complex<double>*
>(WORK), RWORK, info);
2064 void LAPACK<int, Kokkos::complex<double> >::TREXC(
const char& COMPQ,
const int& n, Kokkos::complex<double>* T,
const int& ldt, Kokkos::complex<double>* Q,
const int& ldq,
int* ifst,
int* ilst, Kokkos::complex<double>* WORK,
int* info)
const
2066 ZTREXC_F77(
CHAR_MACRO(COMPQ), &n,
reinterpret_cast<std::complex<double>*
>(T), &ldt,
reinterpret_cast<std::complex<double>*
>(Q), &ldq, ifst, ilst, info);
2069 void LAPACK<int, Kokkos::complex<double> >::LARTG(
const Kokkos::complex<double>
f,
const Kokkos::complex<double>
g,
double* c, Kokkos::complex<double>* s, Kokkos::complex<double>* r )
const
2071 ZLARTG_F77(
reinterpret_cast<const std::complex<double>*
>(&f),
reinterpret_cast<const std::complex<double>*
>(&g), c,
reinterpret_cast<std::complex<double>*
>(s),
reinterpret_cast<std::complex<double>*
>(r));
2075 void LAPACK<int, Kokkos::complex<double> >::LARFG(
const int& n, Kokkos::complex<double>* alpha, Kokkos::complex<double>* x,
const int& incx, Kokkos::complex<double>* tau )
const
2077 ZLARFG_F77(&n,
reinterpret_cast<std::complex<double>*
>(alpha),
reinterpret_cast<std::complex<double>*
>(x), &incx,
reinterpret_cast<std::complex<double>*
>(tau));
2080 void LAPACK<int, Kokkos::complex<double> >::GEBAL(
const char& JOBZ,
const int& n, Kokkos::complex<double>* A,
const int& lda,
int* ilo,
int* ihi,
double* scale,
int* info)
const
2082 ZGEBAL_F77(
CHAR_MACRO(JOBZ),&n,
reinterpret_cast<std::complex<double>*
>(A), &lda, ilo, ihi, scale, info);
2086 void LAPACK<int, Kokkos::complex<double> >::GEBAK(
const char& JOBZ,
const char& SIDE,
const int& n,
const int& ilo,
const int& ihi,
const double* scale,
const int& m, Kokkos::complex<double>* V,
const int& ldv,
int* info)
const
2088 ZGEBAK_F77(
CHAR_MACRO(JOBZ),
CHAR_MACRO(SIDE), &n, &ilo, &ihi, scale, &m,
reinterpret_cast<std::complex<double>*
>(V), &ldv, info);
2092 #ifdef HAVE_TEUCHOS_LAPACKLARND
2093 Kokkos::complex<double> LAPACK<int, Kokkos::complex<double> >::LARND(
const int& idist,
int* seed )
const
2095 double _Complex z = ZLARND_F77(&idist, seed);
2096 return reinterpret_cast<Kokkos::complex<double>&
>(z);
2100 void LAPACK<int, Kokkos::complex<double> >::LARNV(
const int& idist,
int* seed,
const int& n, Kokkos::complex<double>* v )
const
2102 ZLARNV_F77(&idist, seed, &n,
reinterpret_cast<std::complex<double>*
>(v));
2106 int LAPACK<int, Kokkos::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
2108 unsigned int opts_length = OPTS.length();
2109 std::string temp_NAME =
"z" + NAME;
2110 unsigned int name_length = temp_NAME.length();
2111 return ilaenv_wrapper(&ispec, &temp_NAME[0], name_length, &OPTS[0], opts_length, &N1, &N2, &N3, &N4);
2116 #endif // HAVE_TEUCHOS_COMPLEX
2119 #ifdef HAVE_TEUCHOSCORE_QUADMATH
2124 GEQRF(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
const int& lwork,
int* info)
const
2126 Teuchos::Details::Lapack128 lapack;
2127 lapack.GEQRF (m, n, A, lda, TAU, WORK, lwork, info);
2131 GEQR2(
const int& m,
const int& n, __float128* A,
const int& lda, __float128* TAU, __float128* WORK,
int*
const info)
const
2133 Teuchos::Details::Lapack128 lapack;
2134 lapack.GEQR2 (m, n, A, lda, TAU, WORK, info);
2138 GETRF(
const int& m,
const int& n, __float128* A,
const int& lda,
int* IPIV,
int* info)
const
2140 Teuchos::Details::Lapack128 lapack;
2141 lapack.GETRF (m, n, A, lda, IPIV, info);
2145 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
2147 Teuchos::Details::Lapack128 lapack;
2148 lapack.GETRS (TRANS, n, nrhs, A, lda, IPIV, B, ldb, info);
2152 GETRI (
const int& n, __float128* A,
const int& lda,
const int* IPIV, __float128* WORK,
const int& lwork,
int* info)
const
2154 Teuchos::Details::Lapack128 lapack;
2155 lapack.GETRI (n, A, lda, const_cast<int*> (IPIV), WORK, lwork, info);
2159 LASWP (
const int& N, __float128* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
2161 Teuchos::Details::Lapack128 lapack;
2162 lapack.LASWP (N, A, LDA, K1, K2, IPIV, INCX);
2166 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
2168 Teuchos::Details::Lapack128 lapack;
2169 lapack.ORM2R (SIDE, TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, info);
2173 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
2175 Teuchos::Details::Lapack128 lapack;
2176 lapack.ORGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
2180 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
2182 Teuchos::Details::Lapack128 lapack;
2183 lapack.UNGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
2187 LARFG(
const int& n, __float128* alpha, __float128* x,
const int& incx, __float128* tau )
const
2189 Teuchos::Details::Lapack128 lapack;
2190 lapack.LARFG (n, alpha, x, incx, tau);
2194 LAPY2 (
const __float128 x,
const __float128 y)
const
2196 Teuchos::Details::Lapack128 lapack;
2197 return lapack.LAPY2 (x, y);
2201 GBTRF (
const int& m,
const int& n,
const int& kl,
const int& ku,
2202 __float128* A,
const int& lda,
int* IPIV,
int* info)
const
2204 Teuchos::Details::Lapack128 lapack;
2205 return lapack.GBTRF (m, n, kl, ku, A, lda, IPIV, info);
2209 GBTRS (
const char& TRANS,
const int& n,
const int& kl,
const int& ku,
2210 const int& nrhs,
const __float128* A,
const int& lda,
const int* IPIV,
2211 __float128* B,
const int& ldb,
int* info)
const
2213 Teuchos::Details::Lapack128 lapack;
2214 return lapack.GBTRS (TRANS, n, kl, ku, nrhs, A, lda, IPIV, B, ldb, info);
2218 LASCL (
const char& TYPE,
const int& kl,
const int& ku,
const __float128 cfrom,
2219 const __float128 cto,
const int& m,
const int& n, __float128* A,
2220 const int& lda,
int* info)
const
2222 Teuchos::Details::Lapack128 lapack;
2223 return lapack.LASCL (TYPE, kl, ku, cfrom, cto, m, n, A, lda, info);
2228 #endif // HAVE_TEUCHOSCORE_QUADMATH
2230 #ifdef HAVE_TEUCHOS_LONG_DOUBLE
2235 GESV(
const int& n,
const int& nrhs,
long double* A,
const int& lda,
int* IPIV,
long double* B,
const int& ldb,
int* info)
const
2237 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GESV not implemented for long double scalar type!");
2240 GTTRS(
const char& TRANS,
const int& n,
const int& nrhs,
const long double* dl,
const long double* d,
const long double* du,
const long double* du2,
const int* IPIV,
long double* B,
const int& ldb,
int* info)
const
2242 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GTTRS not implemented for long double scalar type!");
2245 GTTRF(
const int& n,
long double* dl,
long double* d,
long double* du,
long double* du2,
int* IPIV,
int* info)
const
2247 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GTTRF not implemented for long double scalar type!");
2250 SYGV(
const int& itype,
const char& JOBZ,
const char& UPLO,
const int& n,
long double* A,
const int& lda,
long double* B,
const int& ldb,
long double* W,
long double* WORK,
const int& lwork,
int* info)
const
2252 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GESV not implemented for long double scalar type!");
2255 GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
long double* A,
const int& lda,
long double* WR,
long double* WI,
long double* VL,
const int& ldvl,
long double* VR,
const int& ldvr,
long double* WORK,
const int& lwork,
int* info)
const
2257 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GEEV not implemented for long double scalar type!");
2260 GEEV(
const char& JOBVL,
const char& JOBVR,
const int& n,
long double* A,
const int& lda,
long double* WR,
long double* WI,
long double* VL,
const int& ldvl,
long double* VR,
const int& ldvr,
long double* WORK,
const int& lwork,
long double* ,
int* info)
const
2262 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GEEV not implemented for long double scalar type!");
2265 GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
long double* A,
const int& lda,
long double* B,
const int& ldb,
long double* ALPHAR,
long double* ALPHAI,
long double* BETA,
long double* VL,
const int& ldvl,
long double* VR,
const int& ldvr,
int* ilo,
int* ihi,
long double* lscale,
long double* rscale,
long double* abnrm,
long double* bbnrm,
long double* RCONDE,
long double* RCONDV,
long double* WORK,
const int& lwork,
int* IWORK,
int* BWORK,
int* info)
const
2267 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GGEVX not implemented for long double scalar type!");
2270 GGEVX(
const char& BALANC,
const char& JOBVL,
const char& JOBVR,
const char& SENSE,
const int& n,
long double* A,
const int& lda,
long double* B,
const int& ldb,
long double* ALPHAR,
long double* ALPHAI,
long double* BETA,
long double* VL,
const int& ldvl,
long double* VR,
const int& ldvr,
int* ilo,
int* ihi,
long double* lscale,
long double* rscale,
long double* abnrm,
long double* bbnrm,
long double* RCONDE,
long double* RCONDV,
long double* WORK,
const int& lwork,
long double* ,
int* IWORK,
int* BWORK,
int* info)
const
2272 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: GGEVX not implemented for long double scalar type!");
2275 PORFS(
const char& UPLO,
const int& n,
const int& nrhs,
const long double* A,
const int& lda,
const long double* AF,
const int& ldaf,
const long double* B,
const int& ldb,
long double* X,
const int& ldx,
long double* FERR,
long double* BERR,
long double* WORK,
int* IWORK,
int* info)
const
2277 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: PORFS not implemented for long double scalar type!");
2280 PTEQR(
const char& COMPZ,
const int& n,
long double* D,
long double* E,
long double* Z,
const int& ldz,
long double* WORK,
int* info)
const
2282 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: PTEQR not implemented for long double scalar type!");
2285 POTRF(
const char& UPLO,
const int& n,
long double* A,
const int& lda,
int* info)
const
2287 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: POTRF not implemented for long double scalar type!");
2290 POTRS(
const char& UPLO,
const int& n,
const int& nrhs,
const long double* A,
const int& lda,
long double* B,
const int& ldb,
int* info)
const
2292 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: POTRS not implemented for long double scalar type!");
2295 POEQU(
const int& n,
const long double* A,
const int& lda,
long double* S,
long double* scond,
long double* amax,
int* info)
const
2297 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::runtime_error,
"ERROR in Teuchos::LAPACK: POEQU not implemented for long double scalar type!");
2300 GEQRF(
const int& m,
const int& n,
long double* A,
const int& lda,
long double* TAU,
long double* WORK,
const int& lwork,
int* info)
const
2302 Teuchos::Details::LapackLongDouble lapack;
2303 lapack.GEQRF (m, n, A, lda, TAU, WORK, lwork, info);
2307 GEQR2(
const int& m,
const int& n,
long double* A,
const int& lda,
long double* TAU,
long double* WORK,
int*
const info)
const
2309 Teuchos::Details::LapackLongDouble lapack;
2310 lapack.GEQR2 (m, n, A, lda, TAU, WORK, info);
2314 GETRF(
const int& m,
const int& n,
long double* A,
const int& lda,
int* IPIV,
int* info)
const
2316 Teuchos::Details::LapackLongDouble lapack;
2317 lapack.GETRF (m, n, A, lda, IPIV, info);
2321 GETRS(
const char& TRANS,
const int& n,
const int& nrhs,
const long double* A,
const int& lda,
const int* IPIV,
long double* B,
const int& ldb,
int* info)
const
2323 Teuchos::Details::LapackLongDouble lapack;
2324 lapack.GETRS (TRANS, n, nrhs, A, lda, IPIV, B, ldb, info);
2328 GETRI (
const int& n,
long double* A,
const int& lda,
const int* IPIV,
long double* WORK,
const int& lwork,
int* info)
const
2330 Teuchos::Details::LapackLongDouble lapack;
2331 lapack.GETRI (n, A, lda, const_cast<int*> (IPIV), WORK, lwork, info);
2335 LASWP (
const int& N,
long double* A,
const int& LDA,
const int& K1,
const int& K2,
const int* IPIV,
const int& INCX)
const
2337 Teuchos::Details::LapackLongDouble lapack;
2338 lapack.LASWP (N, A, LDA, K1, K2, IPIV, INCX);
2342 ORM2R(
const char& SIDE,
const char& TRANS,
const int& m,
const int& n,
const int& k,
const long double* A,
const int& lda,
const long double* TAU,
long double* C,
const int& ldc,
long double* WORK,
int*
const info)
const
2344 Teuchos::Details::LapackLongDouble lapack;
2345 lapack.ORM2R (SIDE, TRANS, m, n, k, A, lda, TAU, C, ldc, WORK, info);
2349 ORGQR(
const int& m,
const int& n,
const int& k,
long double* A,
const int& lda,
const long double* TAU,
long double* WORK,
const int& lwork,
int* info)
const
2351 Teuchos::Details::LapackLongDouble lapack;
2352 lapack.ORGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
2356 UNGQR(
const int& m,
const int& n,
const int& k,
long double* A,
const int& lda,
const long double* TAU,
long double* WORK,
const int& lwork,
int* info)
const
2358 Teuchos::Details::LapackLongDouble lapack;
2359 lapack.UNGQR (m, n, k, A, lda, TAU, WORK, lwork, info);
2363 LARFG(
const int& n,
long double* alpha,
long double* x,
const int& incx,
long double* tau )
const
2365 Teuchos::Details::LapackLongDouble lapack;
2366 lapack.LARFG (n, alpha, x, incx, tau);
2370 LAPY2 (
const long double x,
const long double y)
const
2372 Teuchos::Details::LapackLongDouble lapack;
2373 return lapack.LAPY2 (x, y);
2377 GBTRF (
const int& m,
const int& n,
const int& kl,
const int& ku,
2378 long double* A,
const int& lda,
int* IPIV,
int* info)
const
2380 Teuchos::Details::LapackLongDouble lapack;
2381 return lapack.GBTRF (m, n, kl, ku, A, lda, IPIV, info);
2385 GBTRS (
const char& TRANS,
const int& n,
const int& kl,
const int& ku,
2386 const int& nrhs,
const long double* A,
const int& lda,
const int* IPIV,
2387 long double* B,
const int& ldb,
int* info)
const
2389 Teuchos::Details::LapackLongDouble lapack;
2390 return lapack.GBTRS (TRANS, n, kl, ku, nrhs, A, lda, IPIV, B, ldb, info);
2394 LASCL (
const char& TYPE,
const int& kl,
const int& ku,
const long double cfrom,
2395 const long double cto,
const int& m,
const int& n,
long double* A,
2396 const int& lda,
int* info)
const
2398 Teuchos::Details::LapackLongDouble lapack;
2399 return lapack.LASCL (TYPE, kl, ku, cfrom, cto, m, n, A, lda, info);
2404 #endif // HAVE_TEUCHOS_LONG_DOUBLE
void TGEVC(const char &SIDE, const char &HOWMNY, const OrdinalType *SELECT, const OrdinalType &n, const ScalarType *S, const OrdinalType &lds, const ScalarType *P, const OrdinalType &ldp, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, const OrdinalType &mm, OrdinalType *M, ScalarType *WORK, OrdinalType *info) const
void ORM2R(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, OrdinalType *const info) const
BLAS 2 version of ORMQR; known workspace size.
void PREFIX SPORFS_F77(Teuchos_fcd, const int *n, const int *nrhs, const float *a, const int *lda, const float *af, const int *ldaf, const float *b, const int *ldb, float *x, const int *ldx, float *ferr, float *berr, float *work, int *iwork, int *info)
void PREFIX SLARFG_F77(const int *n, float *alpha, float *x, const int *incx, float *tau)
void ORGQR(const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Compute explicit Q factor from QR factorization (GEQRF) (real case).
void GEEQU(const OrdinalType &m, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, ScalarType *R, ScalarType *C, ScalarType *rowcond, ScalarType *colcond, ScalarType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n matrix A and reduce its condition ...
void PREFIX DORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *n, const int *k, const double *a, const int *lda, const double *tau, double *C, const int *ldc, double *work, const int *lwork, int *info)
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 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 DLASCL_F77(Teuchos_fcd, 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)
void LARTG(const ScalarType &f, const ScalarType &g, MagnitudeType *c, ScalarType *s, ScalarType *r) const
Gnerates a plane rotation that zeros out the second component of the input vector.
void GGEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *lscale, MagnitudeType *rscale, MagnitudeType *abnrm, MagnitudeType *bbnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *BWORK, OrdinalType *info) const
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 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 SYTRD(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *D, ScalarType *E, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Reduces a real symmetric matrix A to tridiagonal form by orthogonal similarity transformations.
OrdinalType ILAENV(const OrdinalType &ispec, const std::string &NAME, const std::string &OPTS, const OrdinalType &N1=-1, const OrdinalType &N2=-1, const OrdinalType &N3=-1, const OrdinalType &N4=-1) const
Chooses problem-dependent parameters for the local environment.
void GBCON(const char &NORM, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number of a general banded real matrix A, in either the 1-norm or the infinity-norm, using the LU factorization computed by GETRF.
void 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 DLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int *N, const double *A, const int *LDA, double *X, double *SCALE, double *CNORM, 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 PREFIX DPORFS_F77(Teuchos_fcd, const int *n, const int *nrhs, const double *a, const int *lda, const double *af, const int *ldaf, const double *b, const int *ldb, double *x, const int *ldx, double *ferr, double *berr, double *work, int *iwork, int *info)
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 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 PREFIX DLARTG_F77(const double *f, const double *g, double *c, double *s, double *r)
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 GEBAK(const char &JOBZ, const char &SIDE, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const MagnitudeType *scale, const OrdinalType &m, ScalarType *V, const OrdinalType &ldv, OrdinalType *info) const
Forms the left or right eigenvectors of a general matrix that has been balanced by GEBAL by backward ...
void POTRI(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of a real symmetric positive definite matrix A using the Cholesky factorization ...
void 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 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 SPEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *AP, ScalarType *W, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, OrdinalType *info) const
Computes the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A in packed stora...
void GTTRF(const OrdinalType &n, ScalarType *dl, ScalarType *d, ScalarType *du, ScalarType *du2, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a n by n tridiagonal matrix A using partial pivoting with row interch...
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
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 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 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 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)
void POSV(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is a symmetric positive def...
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
void 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 SORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *n, const int *k, const float *a, const int *lda, const float *tau, float *C, const int *ldc, float *work, const int *lwork, int *info)
void PTTRF(const OrdinalType &n, MagnitudeType *d, ScalarType *e, OrdinalType *info) const
Computes the L*D*L' factorization of a Hermitian/symmetric positive definite tridiagonal matrix A...
void GBTRF(const OrdinalType &m, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, OrdinalType *info) const
Computes an LU factorization of a general banded m by n matrix A using partial pivoting with row inte...
void 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 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 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 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 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 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 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 PREFIX DSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, double *a, const int *lda, double *w, double *work, const int *lwork, int *info)
double PREFIX DLARND_F77(const int *idist, int *seed)
float PREFIX SLAMCH_F77(Teuchos_fcd)
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 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
double PREFIX DLAPY2_F77(const double *x, const double *y)
double PREFIX DLAMCH_F77(Teuchos_fcd)
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...
The Templated LAPACK wrappers.
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 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 PREFIX STRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int *n, float *a, const int *lda, int *info)
#define CHAR_MACRO(char_var)
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 DLASWP_F77(const int *N, double *A, const int *LDA, const int *K1, const int *K2, const int *IPIV, const int *INCX)
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 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)
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.
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 DGEBAL_F77(Teuchos_fcd, const int *n, double *a, const int *lda, int *ilo, int *ihi, double *scale, 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)
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 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 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 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 ORMHR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Overwrites the general real m by n matrix C with the product of C and Q, which is a product of ihi-il...
void GEES(const char &JOBVS, const char &SORT, OrdinalType &(*ptr2func)(ScalarType *, ScalarType *), const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *sdim, ScalarType *WR, ScalarType *WI, ScalarType *VS, const OrdinalType &ldvs, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *BWORK, OrdinalType *info) const
void GEBAL(const char &JOBZ, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *scale, OrdinalType *info) const
Balances a general matrix A, through similarity transformations to make the rows and columns as close...
void PORFS(const char &UPLO, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
void LATRS(const char &UPLO, const char &TRANS, const char &DIAG, const char &NORMIN, const OrdinalType &N, const ScalarType *A, const OrdinalType &LDA, ScalarType *X, MagnitudeType *SCALE, MagnitudeType *CNORM, OrdinalType *INFO) const
Robustly solve a possibly singular triangular linear system.
void PREFIX SGTTRF_F77(const int *n, float *dl, float *d, float *du, float *du2, int *ipiv, int *info)
ScalarType LARND(const OrdinalType &idist, OrdinalType *seed) const
Returns a random number from a uniform or normal distribution.
void POTRF(const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes Cholesky factorization of a real symmetric positive definite matrix A.
void 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 SGBCON_F77(Teuchos_fcd norm, const int *n, const int *kl, const int *ku, const float *a, const int *lda, const int *IPIV, const float *anorm, float *rcond, float *work, int *iwork, int *info)
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 DGBCON_F77(Teuchos_fcd norm, const int *n, const int *kl, const int *ku, const double *a, const int *lda, const int *IPIV, const double *anorm, double *rcond, double *work, int *iwork, int *info)
void SYEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix A...
void TREXC(const char &COMPQ, const OrdinalType &n, ScalarType *T, const OrdinalType &ldt, ScalarType *Q, const OrdinalType &ldq, OrdinalType *ifst, OrdinalType *ilst, ScalarType *WORK, OrdinalType *info) const
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 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)
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 DTGEVC_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, const double *s, const int *lds, const double *p, const int *ldp, double *vl, const int *ldvl, double *vr, const int *ldvr, const int *mm, int *m, double *work, int *info)
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 GGEV(const char &JOBVL, const char &JOBVR, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, ScalarType *BETA, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
void SYGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *W, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a symmetric n by n matrix pencil {A...
void 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 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 LASCL(const char &TYPE, const OrdinalType &kl, const OrdinalType &ku, const MagnitudeType cfrom, const MagnitudeType cto, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Multiplies the m by n matrix A by the real scalar cto/cfrom.
void 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 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 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)
int(* gees_nullfptr_t)(double *, double *)
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 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 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)
ScalarType LAPY2(const ScalarType &x, const ScalarType &y) const
Computes x^2 + y^2 safely, to avoid overflow.
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 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 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 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 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 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 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 STGEVC_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, const float *s, const int *lds, const float *p, const int *ldp, float *vl, const int *ldvl, float *vr, const int *ldvr, const int *mm, int *m, float *work, int *info)
void PREFIX DLARNV_F77(const int *idist, int *seed, const int *n, double *v)
Declaration and definition of Teuchos::Details::LapackLongDouble, a partial implementation of Teuchos...
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 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 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 GEQRF(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes a QR factorization of a general m by n matrix A.
void GESVD(const char &JOBU, const char &JOBVT, const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *S, ScalarType *U, const OrdinalType &ldu, ScalarType *V, const OrdinalType &ldv, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes the singular values (and optionally, vectors) of a real matrix A.
void GESV(const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Computes the solution to a real system of linear equations A*X=B, where A is factored through GETRF a...
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 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 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 GETRS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a system of linear equations A*X=B or A'*X=B with a general n by n matrix A using the LU facto...
void GEEVX(const char &BALANC, const char &JOBVL, const char &JOBVR, const char &SENSE, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *WR, ScalarType *WI, ScalarType *VL, const OrdinalType &ldvl, ScalarType *VR, const OrdinalType &ldvr, OrdinalType *ilo, OrdinalType *ihi, MagnitudeType *SCALE, MagnitudeType *abnrm, MagnitudeType *RCONDE, MagnitudeType *RCONDV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, OrdinalType *info) const
void GESVX(const char &FACT, const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *AF, const OrdinalType &ldaf, OrdinalType *IPIV, char *EQUED, ScalarType *R, ScalarType *C, ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *rcond, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Uses the LU factorization to compute the solution to a real system of linear equations A*X=B...
Standard test and throw macros.
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 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 SLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int *N, const float *A, const int *LDA, float *X, float *SCALE, float *CNORM, int *INFO)
void PREFIX DLARFG_F77(const int *n, double *alpha, double *x, const int *incx, double *tau)
void GETRI(const OrdinalType &n, ScalarType *A, const OrdinalType &lda, const OrdinalType *IPIV, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the inverse of a matrix A using the LU factorization computed by GETRF.
void GELS(const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Solves an over/underdetermined real m by n linear system A using QR or LQ factorization of A...
void 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 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 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 GEQR2(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *TAU, ScalarType *WORK, OrdinalType *const info) const
BLAS 2 version of GEQRF, with known workspace size.
void ORMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
#define CHARPTR_MACRO(charptr_var)
void GELSS(const OrdinalType &m, const OrdinalType &n, const OrdinalType &nrhs, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *S, const MagnitudeType rcond, OrdinalType *rank, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Use the SVD to solve a possibly rank-deficient linear least-squares problem.
void 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 SLASCL_F77(Teuchos_fcd, 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)
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 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 PREFIX SGEQRF_F77(const int *m, const int *n, float *a, const int *lda, float *tau, float *work, const int *lwork, int *info)
void HEEV(const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a Hermitian n by n matrix A...
void LARNV(const OrdinalType &idist, OrdinalType *seed, const OrdinalType &n, ScalarType *v) const
Returns a vector of random numbers from a chosen distribution.
void TGSEN(const OrdinalType &ijob, const OrdinalType &wantq, const OrdinalType &wantz, const OrdinalType *SELECT, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *ALPHAR, MagnitudeType *ALPHAI, MagnitudeType *BETA, ScalarType *Q, const OrdinalType &ldq, ScalarType *Z, const OrdinalType &ldz, OrdinalType *M, MagnitudeType *PL, MagnitudeType *PR, MagnitudeType *DIF, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *IWORK, const OrdinalType &liwork, OrdinalType *info) const
void 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 POCON(const char &UPLO, const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, const ScalarType &anorm, ScalarType *rcond, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Estimates the reciprocal of the condition number (1-norm) of a real symmetric positive definite matri...
void PTTRS(const OrdinalType &n, const OrdinalType &nrhs, const MagnitudeType *d, const ScalarType *e, ScalarType *B, const OrdinalType &ldb, OrdinalType *info) const
Solves a tridiagonal system A*X=B using the *D*L' factorization of A computed by PTTRF.
void GERFS(const char &TRANS, const OrdinalType &n, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a system of linear equations and provides error bounds and backward...
void GEQP3(const OrdinalType &m, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *jpvt, ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes a QR factorization with column pivoting of a matrix A: A*P = Q*R using Level 3 BLAS...
void PREFIX SGETRF_F77(const int *m, const int *n, float *a, const int *lda, int *ipiv, int *info)
void PREFIX SLARTG_F77(const float *f, const float *g, float *c, float *s, float *r)
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)
ScalarType LAMCH(const char &CMACH) const
Determines machine parameters for floating point characteristics.
void HEGV(const OrdinalType &itype, const char &JOBZ, const char &UPLO, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, ScalarType *B, const OrdinalType &ldb, MagnitudeType *W, ScalarType *WORK, const OrdinalType &lwork, MagnitudeType *RWORK, OrdinalType *info) const
Computes all the eigenvalues and, optionally, eigenvectors of a generalized Hermitian-definite n by n...
void ORGHR(const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Generates a real orthogonal matrix Q which is the product of ihi-ilo elementary reflectors of order n...
void TRTRI(const char &UPLO, const char &DIAG, const OrdinalType &n, ScalarType *A, const OrdinalType &lda, OrdinalType *info) const
Computes the inverse of an upper or lower triangular matrix A.
void PREFIX SPTEQR_F77(Teuchos_fcd, const int *n, float *D, float *E, float *Z, const int *ldz, float *work, int *info)
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)
#define TEUCHOS_MIN(x, y)
void PREFIX DTRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int *n, double *a, const int *lda, int *info)
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)
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 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 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)
float PREFIX SLARND_F77(const int *idist, int *seed)
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 SPTTRF_F77(const int *n, float *d, float *e, int *info)
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 HSEQR(const char &JOB, const char &COMPZ, const OrdinalType &n, const OrdinalType &ilo, const OrdinalType &ihi, ScalarType *H, const OrdinalType &ldh, ScalarType *WR, ScalarType *WI, ScalarType *Z, const OrdinalType &ldz, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Computes the eigenvalues of a real upper Hessenberg matrix H and, optionally, the matrices T and Z fr...
void LASWP(const OrdinalType &N, ScalarType *A, const OrdinalType &LDA, const OrdinalType &K1, const OrdinalType &K2, const OrdinalType *IPIV, const OrdinalType &INCX) const
Apply a series of row interchanges to the matrix A.
void 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 GBRFS(const char &TRANS, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const OrdinalType &nrhs, const ScalarType *A, const OrdinalType &lda, const ScalarType *AF, const OrdinalType &ldaf, const OrdinalType *IPIV, const ScalarType *B, const OrdinalType &ldb, ScalarType *X, const OrdinalType &ldx, ScalarType *FERR, ScalarType *BERR, ScalarType *WORK, OrdinalType *IWORK, OrdinalType *info) const
Improves the computed solution to a banded system of linear equations and provides error bounds and b...
void POEQU(const OrdinalType &n, const ScalarType *A, const OrdinalType &lda, MagnitudeType *S, MagnitudeType *scond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate a symmetric positive definite matrix A and r...
void UNMQR(const char &SIDE, const char &TRANS, const OrdinalType &m, const OrdinalType &n, const OrdinalType &k, const ScalarType *A, const OrdinalType &lda, const ScalarType *TAU, ScalarType *C, const OrdinalType &ldc, ScalarType *WORK, const OrdinalType &lwork, OrdinalType *info) const
Apply Householder reflectors (complex case).
void GBEQU(const OrdinalType &m, const OrdinalType &n, const OrdinalType &kl, const OrdinalType &ku, const ScalarType *A, const OrdinalType &lda, MagnitudeType *R, MagnitudeType *C, MagnitudeType *rowcond, MagnitudeType *colcond, MagnitudeType *amax, OrdinalType *info) const
Computes row and column scalings intended to equilibrate an m by n banded matrix A and reduce its con...