mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
eigenLapack.hpp File Reference

Interfaces to Lapack and BLAS for Eigen-like arrays. More...

Interfaces to Lapack and BLAS for Eigen-like arrays.

Author
Jared R. Males (jared.nosp@m.male.nosp@m.s@gma.nosp@m.il.c.nosp@m.om)

Definition in file eigenLapack.hpp.

Go to the source code of this file.

Classes

struct  mx::math::syevrMem< floatT >
 A struct to hold the working memory for eigenSYEVR and maintain it between calls if desired. More...
 

Namespaces

 mx
 The mxlib c++ namespace.
 

Functions

template<typename eigenT1 , typename eigenT2 >
void mx::math::eigenSYRK (eigenT1 &cv, const eigenT2 &ims)
 Calculates the lower triangular part of the covariance matrix of ims. More...
 
template<typename cvT , typename calcT >
MXLAPACK_INT mx::math::eigenSYEVR (Eigen::Array< calcT, Eigen::Dynamic, Eigen::Dynamic > &eigvec, Eigen::Array< calcT, Eigen::Dynamic, Eigen::Dynamic > &eigval, Eigen::Array< cvT, Eigen::Dynamic, Eigen::Dynamic > &X, int ev0=0, int ev1=-1, char UPLO='L', syevrMem< calcT > *mem=0)
 Calculate select eigenvalues and eigenvectors of an Eigen Array. More...
 
template<typename _evCalcT = double, typename eigenT , typename eigenT1 >
MXLAPACK_INT mx::math::calcKLModes (eigenT &klModes, eigenT &cv, const eigenT1 &Rims, int n_modes=0, syevrMem< _evCalcT > *mem=0, double *t_eigenv=nullptr, double *t_klim=nullptr)
 Calculate the K-L modes, or principle components, given a covariance matrix. More...
 
template<typename dataT >
MXLAPACK_INT mx::math::eigenGESDD (Eigen::Array< dataT,-1,-1 > &U, Eigen::Array< dataT,-1,-1 > &S, Eigen::Array< dataT,-1,-1 > &VT, Eigen::Array< dataT,-1,-1 > &A)
 Compute the SVD of an Eigen::Array using LAPACK's xgesdd. More...
 
template<typename dataT >
int mx::math::eigenPseudoInverse (Eigen::Array< dataT, -1, -1 > &PInv, dataT &condition, int &nRejected, Eigen::Array< dataT, -1, -1 > &U, Eigen::Array< dataT, -1, -1 > &S, Eigen::Array< dataT, -1, -1 > &VT, Eigen::Array< dataT, -1, -1 > &A, dataT &maxCondition, dataT alpha=0, int interact=MX_PINV_NO_INTERACT)
 Calculate the pseudo-inverse of a patrix using the SVD. More...
 
template<typename dataT >
int mx::math::eigenPseudoInverse (Eigen::Array< dataT, -1, -1 > &PInv, dataT &condition, int &nRejected, Eigen::Array< dataT, -1, -1 > &A, dataT &maxCondition, dataT alpha=0, int interact=MX_PINV_NO_INTERACT)
 Calculate the pseudo-inverse of a matrix using the SVD. More...