|
mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
Declares and defines templatized wrappers for the Lapack library. More...
Declares and defines templatized wrappers for the Lapack library.
Definition in file templateLapack.hpp.
#include <complex>#include <lapacke.h>Go to the source code of this file.
Namespaces | |
| namespace | mx |
| The mxlib c++ namespace. | |
Functions | |
| template<typename dataT> | |
| dataT | mx::math::lamch (char CMACH) |
| Determine machine parameters. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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 transformation. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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. | |
| template<> | |
| MXLAPACK_INT | mx::math::laed9< float > (float *D, float *Q, float *S, MXLAPACK_INT K, MXLAPACK_INT KSTART, MXLAPACK_INT KSTOP, MXLAPACK_INT N, MXLAPACK_INT LDQ, float RHO, float *DLAMDA, float *W, MXLAPACK_INT LDS) |
| Float specialization of laed9, a wrapper for LAPACK SLAED9. | |
| template<> | |
| MXLAPACK_INT | mx::math::laed9< double > (double *D, double *Q, double *S, MXLAPACK_INT K, MXLAPACK_INT KSTART, MXLAPACK_INT KSTOP, MXLAPACK_INT N, MXLAPACK_INT LDQ, double RHO, double *DLAMDA, double *W, MXLAPACK_INT LDS) |
| Double specialization of laed9, a wrapper for LAPACK DLAED9. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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. | |
| template<typename dataT> | |
| MXLAPACK_INT | mx::math::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 mx::math::laed9< double > | ( | double * | D, |
| double * | Q, | ||
| double * | S, | ||
| MXLAPACK_INT | K, | ||
| MXLAPACK_INT | KSTART, | ||
| MXLAPACK_INT | KSTOP, | ||
| MXLAPACK_INT | N, | ||
| MXLAPACK_INT | LDQ, | ||
| double | RHO, | ||
| double * | DLAMDA, | ||
| double * | W, | ||
| MXLAPACK_INT | LDS ) |
Double specialization of laed9, a wrapper for LAPACK DLAED9.
[in] leading dimension of S, at least max(1,K)
| [out] | D | N-element array of selected updated eigenvalues |
| [out] | Q | LDQ-by-N secular-equation workspace produced by LAPACK |
| [out] | S | LDS-by-K updated eigenvectors, stored column-wise |
| [in] | K | number of terms in the secular equation |
| [in] | KSTART | first updated eigenvalue, inclusive and one-based |
| [in] | KSTOP | last updated eigenvalue, inclusive and one-based |
| [in] | N | Q matrix dimension, at least K |
| [in] | LDQ | leading dimension of Q, at least max(1,N) |
| [in] | RHO | positive rank-one update weight |
| [in] | DLAMDA | K-element array of strictly increasing diagonal poles |
| [in,out] | W | K deflation-adjusted update components |
Definition at line 246 of file templateLapack.cpp.
References laed9().
| MXLAPACK_INT mx::math::laed9< float > | ( | float * | D, |
| float * | Q, | ||
| float * | S, | ||
| MXLAPACK_INT | K, | ||
| MXLAPACK_INT | KSTART, | ||
| MXLAPACK_INT | KSTOP, | ||
| MXLAPACK_INT | N, | ||
| MXLAPACK_INT | LDQ, | ||
| float | RHO, | ||
| float * | DLAMDA, | ||
| float * | W, | ||
| MXLAPACK_INT | LDS ) |
Float specialization of laed9, a wrapper for LAPACK SLAED9.
[in] leading dimension of S, at least max(1,K)
| [out] | D | N-element array of selected updated eigenvalues |
| [out] | Q | LDQ-by-N secular-equation workspace produced by LAPACK |
| [out] | S | LDS-by-K updated eigenvectors, stored column-wise |
| [in] | K | number of terms in the secular equation |
| [in] | KSTART | first updated eigenvalue, inclusive and one-based |
| [in] | KSTOP | last updated eigenvalue, inclusive and one-based |
| [in] | N | Q matrix dimension, at least K |
| [in] | LDQ | leading dimension of Q, at least max(1,N) |
| [in] | RHO | positive rank-one update weight |
| [in] | DLAMDA | K-element array of strictly increasing diagonal poles |
| [in,out] | W | K deflation-adjusted update components |
Definition at line 225 of file templateLapack.cpp.
References laed9().
| MXLAPACK_INT mx::math::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.
The factorization has the form A = U**T * U, if UPLO = 'U', or A = L * L**T, if UPLO = 'L', where U is an upper triangular matrix and L is lower triangular.
| [in] | UPLO | 'U' if upper triangle of A is stored, 'L' if lower triangle of A is stored. |
| [in] | N | The order of the matrix A, >= 0. |
| A | [in.out] Symmetric matrix of dimension (LDA,N), stored as specified in UPLO. Note that the opposite half is not referenced. | |
| [in] | LDA | The leading dimension of A. |
| [out] | INFO | 0 on success, < 0 -INFO means the i-th argument had an illegal value, >0 the leading minor of order INFO is not positive definite, and the factorization could not be completed. |