PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
LAPACK_utilities Namespace Reference

Classes

struct  QR_Factorization
 

Functions

void MGS (const Eigen::MatrixXd &X, Eigen::MatrixXd &Q, Eigen::MatrixXd &R)
 Compute the modified Gram-Schmidt factorization of matrix X.
 
double rcondest (const Eigen::SparseMatrix< double > &sparseA)
 
Eigen::MatrixXd triu (const Eigen::MatrixXd &X, const unsigned int &i)
 Extract upper triangular part of matrix X.
 
void svd (Eigen::MatrixXd A, Eigen::MatrixXd &V, Eigen::VectorXd &S)
 Given A = U * S * V' returns only S and V'.
 
void inverseTri (const Eigen::MatrixXd A, Eigen::MatrixXd &InvA, const char &UPLO, const char &DIAG)
 Compute inverse of triangular matrix.
 
void eig (const Eigen::MatrixXd A, Eigen::VectorXd &D, Eigen::MatrixXd &R)
 Compute eigenvalues and eigenvectors of A = R * D * R'.
 
Eigen::VectorXd svd (Eigen::MatrixXd A)
 Given A = U * S * V' returns only S.
 
void svd (Eigen::MatrixXd A, Eigen::MatrixXd &U, Eigen::MatrixXd &V, Eigen::VectorXd &S)
 Given A = U * S * V' returns U, S and V'.
 
QR_Factorization MGS (const Eigen::MatrixXd &X, const double &tolerance=std::numeric_limits< double >::epsilon())
 Compute the modified Gram-Schmidt factorization of matrix X with no maximum rank.
 
QR_Factorization QR (const Eigen::MatrixXd &X, const double &tolerance=std::numeric_limits< double >::epsilon())
 Compute the QR matrix based on Householder reflectors.
 
QR_Factorization QRP (const Eigen::MatrixXd &X, const double &tolerance=std::numeric_limits< double >::epsilon())
 Compute the QR with pivoting matrix based on Householder reflectors.
 
unsigned int rank (const Eigen::VectorXd &s, const double &tolerance)
 
double cond (const Eigen::VectorXd &s)
 Compute condition number in norm 2 given singular values.
 

Function Documentation

◆ cond()

double LAPACK_utilities::cond ( const Eigen::VectorXd &  s)
inline

Compute condition number in norm 2 given singular values.

Parameters
sthe singular values of matrix

◆ eig()

void LAPACK_utilities::eig ( const Eigen::MatrixXd  A,
Eigen::VectorXd &  D,
Eigen::MatrixXd &  R 
)

Compute eigenvalues and eigenvectors of A = R * D * R'.

◆ inverseTri()

void LAPACK_utilities::inverseTri ( const Eigen::MatrixXd  A,
Eigen::MatrixXd &  InvA,
const char &  UPLO,
const char &  DIAG 
)

Compute inverse of triangular matrix.

UPLO is CHARACTER*1 = 'U': A is upper triangular or = 'L': A is lower triangular. DIAG is CHARACTER*1 = 'N': A is non-unit triangular; or = 'U': A is unit triangular.

◆ MGS() [1/2]

QR_Factorization LAPACK_utilities::MGS ( const Eigen::MatrixXd &  X,
const double &  tolerance 
)

Compute the modified Gram-Schmidt factorization of matrix X with no maximum rank.

◆ MGS() [2/2]

void LAPACK_utilities::MGS ( const Eigen::MatrixXd &  X,
Eigen::MatrixXd &  Q,
Eigen::MatrixXd &  R 
)

Compute the modified Gram-Schmidt factorization of matrix X.

◆ QR()

QR_Factorization LAPACK_utilities::QR ( const Eigen::MatrixXd &  X,
const double &  tolerance 
)

Compute the QR matrix based on Householder reflectors.

◆ QRP()

QR_Factorization LAPACK_utilities::QRP ( const Eigen::MatrixXd &  X,
const double &  tolerance 
)

Compute the QR with pivoting matrix based on Householder reflectors.

◆ rank()

unsigned int LAPACK_utilities::rank ( const Eigen::VectorXd &  s,
const double &  tolerance = std::numeric_limits< double >::epsilon() 
)
Parameters
sthe singular values of matrix

◆ rcondest()

double LAPACK_utilities::rcondest ( const Eigen::SparseMatrix< double > &  sparseA)

◆ svd() [1/3]

Eigen::VectorXd LAPACK_utilities::svd ( Eigen::MatrixXd  A)

Given A = U * S * V' returns only S.

Compute SVD: A = U * S * V'. It returns and computes only S.

◆ svd() [2/3]

void LAPACK_utilities::svd ( Eigen::MatrixXd  A,
Eigen::MatrixXd &  U,
Eigen::MatrixXd &  V,
Eigen::VectorXd &  S 
)

Given A = U * S * V' returns U, S and V'.

Compute SVD: A = U * S * V'. It returns U, S and V'.

◆ svd() [3/3]

void LAPACK_utilities::svd ( Eigen::MatrixXd  A,
Eigen::MatrixXd &  V,
Eigen::VectorXd &  S 
)

Given A = U * S * V' returns only S and V'.

Compute SVD: A = U * S * V'. It returns and computes only S and V'.

◆ triu()

Eigen::MatrixXd LAPACK_utilities::triu ( const Eigen::MatrixXd &  X,
const unsigned int &  i 
)

Extract upper triangular part of matrix X.

Extract the upper triangular matrix of matrix X. If i > 0, it returns the elements on and above the ith diagonal of A.