chombo-discharge
Loading...
Searching...
No Matches
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

namespace  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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 

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.