27#ifndef math_templateLapack_hpp
28#define math_templateLapack_hpp
35#if defined( MXLIB_MKL )
37#define MKL_Complex8 float _Complex
38#define MKL_Complex16 double _Complex
48typedef MKL_INT MXLAPACK_INT;
49#define MKL_CONST_PTR const
52typedef int MXLAPACK_INT;
59#ifndef MXNODEF_LAPACK_INT
61#define lapack_int MXLAPACK_INT
104template <
typename dataT>
119float lamch<float>(
char CMACH );
123double lamch<double>(
char CMACH );
132template <
typename dataT>
144MXLAPACK_INT potrf<float>(
char UPLO, MXLAPACK_INT
N,
float *A, MXLAPACK_INT
LDA, MXLAPACK_INT &
INFO );
147MXLAPACK_INT potrf<double>(
char UPLO, MXLAPACK_INT
N,
double *A, MXLAPACK_INT
LDA, MXLAPACK_INT &
INFO );
183template <
typename dataT>
209MXLAPACK_INT sytrd<float>(
char UPLO,
221MXLAPACK_INT sytrd<double>(
char UPLO,
242template <
typename dataT>
287MXLAPACK_INT syevr<float>(
char JOBZ,
310MXLAPACK_INT syevr<double>(
char JOBZ,
480template <
typename dataT>
515MXLAPACK_INT gesvd<float>(
char JOBU,
527 MXLAPACK_INT
LWORK );
531MXLAPACK_INT gesvd<double>(
char JOBU,
543 MXLAPACK_INT
LWORK );
691template <
typename dataT>
726MXLAPACK_INT gesdd<float>(
char JOBZ,
743MXLAPACK_INT gesdd<double>(
char JOBZ,
constexpr floatT six_fifths()
Return 6/5 in the specified precision.
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 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 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.