chombo-discharge
Namespaces | Functions
CD_LaPackUtils.H File Reference

Interface to some LaPack routines. More...

#include <vector>
#include <CD_NamespaceHeader.H>
#include <CD_NamespaceFooter.H>
Include dependency graph for CD_LaPackUtils.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 LaPackUtils
 Namespace containing various useful linear algebra routines using LaPACK.
 

Functions

void dgelss_ (int *a_M, int *a_N, int *a_nRHS, double *a_A, int *a_LDA, double *a_B, int *a_LDB, double *a_S, double *a_rcond, int *a_RANK, double *a_WORK, int *a_LWORK, int *a_INFO)
 This is an interface to LAPACK for solving least squares problems using singular-value decomposition. More...
 
void dgesdd_ (char *a_JOBZ, int *a_M, int *a_N, double *a_A, int *a_LDA, double *a_S, double *a_U, int *a_LDU, double *a_VT, int *a_LDVT, double *a_WORK, int *a_LWORK, int *a_IWORK, int *a_INFO)
 Interface to LaPack for computing the singular value decomposition of a matrix. More...
 
void sgesdd_ (char *a_JOBZ, int *a_M, int *a_N, float *a_A, int *a_LDA, float *a_S, float *a_U, int *a_LDU, float *a_VT, int *a_LDVT, float *a_WORK, int *a_LWORK, int *a_IWORK, int *a_INFO)
 Interface to LaPack for computing the singular value decomposition of a matrix. More...
 
void dgemm_ (char *a_TRANSA, char *a_TRANSB, int *a_M, int *a_N, int *a_K, double *a_ALPHA, double *a_A, int *a_LDA, double *a_B, int *a_LDB, double *a_BETA, double *a_C, int *a_LDC)
 Interface to LaPack for matrix multiplication.
 
void sgemm_ (char *a_TRANSA, char *a_TRANSB, int *a_M, int *a_N, int *a_K, float *a_ALPHA, float *a_A, int *a_LDA, float *a_B, int *a_LDB, float *a_BETA, float *a_C, int *a_LDC)
 Interface to LaPack for matrix multiplication. More...
 
void dgesv_ (int *N, int *NRHS, double *A, int *LDA, int *IPIV, double *B, int *LDB, int *INFO)
 Interface to LaPack for computing solution to Ax=b.
 
int LaPackUtils::linearIndex (const int irow, const int jcol, const int M, const int N)
 Get the index in the linearized matrix of size MxN. More...
 
bool LaPackUtils::computeSVD (std::vector< double > &a_linU, std::vector< double > &a_linSigma, std::vector< double > &a_linVtran, const std::vector< double > &a_linA, const int &a_M, const int &a_N)
 Compute the singular value decomposition of a matrix. More...
 
bool LaPackUtils::computeSVD (std::vector< float > &a_linU, std::vector< float > &a_linSigma, std::vector< float > &a_linVtran, const std::vector< float > &a_linA, const int &a_M, const int &a_N)
 Compute the singular value decomposition of a matrix. More...
 
bool LaPackUtils::computePseudoInverse (std::vector< double > &a_linAplus, const std::vector< double > &a_linA, const int &a_M, const int &a_N)
 Compute the pseudoinverse of matrix through singular value decomposition. More...
 
bool LaPackUtils::computePseudoInverse (std::vector< float > &a_linAplus, const std::vector< float > &a_linA, const int &a_M, const int &a_N)
 Compute the pseudoinverse of matrix through singular value decomposition. More...
 
void LaPackUtils::linearizeMatrix (std::vector< double > &a_linA, int &a_M, int &a_N, const std::vector< std::vector< double >> &a_A, const char &a_format)
 Linearize a matrix to column major Fortran form by assuming row or major colum format of the input matrix. More...
 
void LaPackUtils::linearizeColumnMajorMatrix (std::vector< double > &a_linA, int &a_M, int &a_N, const std::vector< std::vector< double >> &a_A)
 Linearize a matrix to column major Fortran form by column major format of the input matrix. More...
 
void LaPackUtils::linearizeRowMajorMatrix (std::vector< double > &a_linA, int &a_M, int &a_N, const std::vector< std::vector< double >> &a_A)
 Linearize a matrix to column major Fortran form by row major format of the input matrix. More...
 
void LaPackUtils::deLinearizeMatrix (std::vector< std::vector< double >> &a_A, const int &a_M, const int &a_N, const std::vector< double > &a_linA, const char &a_format)
 Delinearize a linearized matrix from column major Fortran to row or major colum matrix format. More...
 
void LaPackUtils::deLinearizeColumnMajorMatrix (std::vector< std::vector< double >> &a_A, const int &a_M, const int &a_N, const std::vector< double > &a_linA)
 Delinearize a linearized matrix from column major Fortran to column major form. More...
 
void LaPackUtils::deLinearizeRowMajorMatrix (std::vector< std::vector< double >> &a_A, const int &a_M, const int &a_N, const std::vector< double > &a_linA)
 Delinearize a linearized matrix from column major Fortran to row major form. More...
 

Detailed Description

Interface to some LaPack routines.

Note
The routines in this file are double precision only.
Author
Robert Marskar

Function Documentation

◆ dgelss_()

void dgelss_ ( int *  a_M,
int *  a_N,
int *  a_nRHS,
double *  a_A,
int *  a_LDA,
double *  a_B,
int *  a_LDB,
double *  a_S,
double *  a_rcond,
int *  a_RANK,
double *  a_WORK,
int *  a_LWORK,
int *  a_INFO 
)

This is an interface to LAPACK for solving least squares problems using singular-value decomposition.

Note
Double precision version.

◆ dgesdd_()

void dgesdd_ ( char *  a_JOBZ,
int *  a_M,
int *  a_N,
double *  a_A,
int *  a_LDA,
double *  a_S,
double *  a_U,
int *  a_LDU,
double *  a_VT,
int *  a_LDVT,
double *  a_WORK,
int *  a_LWORK,
int *  a_IWORK,
int *  a_INFO 
)

Interface to LaPack for computing the singular value decomposition of a matrix.

Note
This is the double-precision version.

◆ sgemm_()

void sgemm_ ( char *  a_TRANSA,
char *  a_TRANSB,
int *  a_M,
int *  a_N,
int *  a_K,
float *  a_ALPHA,
float *  a_A,
int *  a_LDA,
float *  a_B,
int *  a_LDB,
float *  a_BETA,
float *  a_C,
int *  a_LDC 
)

Interface to LaPack for matrix multiplication.

Note
Single-precision version.

◆ sgesdd_()

void sgesdd_ ( char *  a_JOBZ,
int *  a_M,
int *  a_N,
float *  a_A,
int *  a_LDA,
float *  a_S,
float *  a_U,
int *  a_LDU,
float *  a_VT,
int *  a_LDVT,
float *  a_WORK,
int *  a_LWORK,
int *  a_IWORK,
int *  a_INFO 
)

Interface to LaPack for computing the singular value decomposition of a matrix.

Note
This is the single-precision version.