26#ifndef math_templateLapack_hpp
27#define math_templateLapack_hpp
34#if defined( MXLIB_MKL )
36#define MKL_Complex8 float _Complex
37#define MKL_Complex16 double _Complex
47typedef MKL_INT MXLAPACK_INT;
48#define MKL_CONST_PTR const
51typedef int MXLAPACK_INT;
58#ifndef MXNODEF_LAPACK_INT
60#define lapack_int MXLAPACK_INT
103template <
typename dataT>
118float lamch<float>(
char CMACH );
122double lamch<double>(
char CMACH );
131template <
typename dataT>
143MXLAPACK_INT
potrf<float>(
char UPLO, MXLAPACK_INT N,
float *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO );
146MXLAPACK_INT
potrf<double>(
char UPLO, MXLAPACK_INT N,
double *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO );
182template <
typename dataT>
208MXLAPACK_INT sytrd<float>(
char UPLO,
220MXLAPACK_INT sytrd<double>(
char UPLO,
244template <
typename dataT>
263MXLAPACK_INT laed9<float>(
float *D,
278MXLAPACK_INT laed9<double>(
double *D,
301template <
typename dataT>
317 MXLAPACK_INT *ISUPPZ,
321 MXLAPACK_INT LIWORK )
346MXLAPACK_INT syevr<float>(
char JOBZ,
361 MXLAPACK_INT *ISUPPZ,
365 MXLAPACK_INT LIWORK );
369MXLAPACK_INT syevr<double>(
char JOBZ,
384 MXLAPACK_INT *ISUPPZ,
388 MXLAPACK_INT LIWORK );
523template <
typename dataT>
558MXLAPACK_INT gesvd<float>(
char JOBU,
570 MXLAPACK_INT LWORK );
574MXLAPACK_INT gesvd<double>(
char JOBU,
586 MXLAPACK_INT LWORK );
717template <
typename dataT>
730 MXLAPACK_INT *IWORK )
737MXLAPACK_INT gesdd<float>(
char JOBZ,
749 MXLAPACK_INT *IWORK );
753MXLAPACK_INT gesdd<double>(
char JOBZ,
765 MXLAPACK_INT *IWORK );
MXLAPACK_INT sytrd(char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT *D, dataT *E, dataT *TAU, dataT *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT INFO)
Reduce a real symmetric matrix to real symmetric tridiagonal form by an orthogonal similarity transfo...
MXLAPACK_INT gesdd(char JOBZ, MXLAPACK_INT M, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT *S, dataT *U, MXLAPACK_INT LDU, dataT *VT, MXLAPACK_INT LDVT, dataT *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK)
Compute the singular value decomposition (SVD) of a real matrix with GESDD.
MXLAPACK_INT syevr(char JOBZ, char RANGE, char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT VL, dataT VU, MXLAPACK_INT IL, MXLAPACK_INT IU, dataT ABSTOL, MXLAPACK_INT *M, dataT *W, dataT *Z, MXLAPACK_INT LDZ, MXLAPACK_INT *ISUPPZ, dataT *WORK, MXLAPACK_INT LWORK, MXLAPACK_INT *IWORK, MXLAPACK_INT LIWORK)
Compute selected eigenvalues and, optionally, eigenvectors of a real symmetric matrix.
dataT lamch(char CMACH)
Determine machine parameters.
MXLAPACK_INT gesvd(char JOBU, char JOBVT, MXLAPACK_INT M, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, dataT *S, dataT *U, MXLAPACK_INT LDU, dataT *VT, MXLAPACK_INT LDVT, dataT *WORK, MXLAPACK_INT LWORK)
Compute the singular value decomposition (SVD) of a real matrix.
MXLAPACK_INT laed9(dataT *D, dataT *Q, dataT *S, MXLAPACK_INT K, MXLAPACK_INT KSTART, MXLAPACK_INT KSTOP, MXLAPACK_INT N, MXLAPACK_INT LDQ, dataT RHO, dataT *DLAMDA, dataT *W, MXLAPACK_INT LDS)
Solve selected roots of a diagonal-plus-rank-one secular equation and form its eigenvectors.
MXLAPACK_INT potrf(char UPLO, MXLAPACK_INT N, dataT *A, MXLAPACK_INT LDA, MXLAPACK_INT &INFO)
Compute the Cholesky factorization of a real symmetric positive definite matrix A.