14#ifndef CD_LAPACKUTILS_H
15#define CD_LAPACKUTILS_H
21#include <CD_NamespaceHeader.H>
102dgesv_(
int* N,
int* NRHS,
double* A,
int* LDA,
int* IPIV,
double* B,
int* LDB,
int* INFO);
119linearIndex(
const int irow,
const int jcol,
const int M,
const int N);
138 std::vector<double>& a_linSigma,
139 std::vector<double>& a_linVtran,
140 const std::vector<double>& a_linA,
161 std::vector<float>& a_linSigma,
162 std::vector<float>& a_linVtran,
163 const std::vector<float>& a_linA,
177 const std::vector<double>& a_linA,
190computePseudoInverse(std::vector<float>& a_linAplus,
const std::vector<float>& a_linA,
const int& a_M,
const int& a_N);
205 const std::vector<std::vector<double>>& a_A,
206 const char& a_format);
219 const std::vector<std::vector<double>>& a_A);
229linearizeRowMajorMatrix(std::vector<double>& a_linA,
int& a_M,
int& a_N,
const std::vector<std::vector<double>>& a_A);
244 const std::vector<double>& a_linA,
245 const char& a_format);
258 const std::vector<double>& a_linA);
271 const std::vector<double>& a_linA);
274#include <CD_NamespaceFooter.H>
Namespace containing various useful linear algebra routines using LaPACK.
Definition CD_LaPackUtils.H:108
void 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 column matrix format.
Definition CD_LaPackUtils.cpp:460
void 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.
Definition CD_LaPackUtils.cpp:439
void 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 column format of the input m...
Definition CD_LaPackUtils.cpp:400
void 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.
Definition CD_LaPackUtils.cpp:380
bool 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.
Definition CD_LaPackUtils.cpp:30
void 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.
Definition CD_LaPackUtils.cpp:360
int linearIndex(const int irow, const int jcol, const int M, const int N)
Get the index in the linearized matrix of size MxN.
Definition CD_LaPackUtils.cpp:24
bool 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.
Definition CD_LaPackUtils.cpp:164
void 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.
Definition CD_LaPackUtils.cpp:418