5 #ifndef ROADRUNNER_SVD_H
6 #define ROADRUNNER_SVD_H
8 #include "rr-libstruct/lsMatrix.h"
11 #include "clapack/f2c.h"
12 #include "clapack/clapack.h"
13 #include "clapack/blaswrap.h"
42 explicit SVD(ls::DoubleMatrix& matrix);
70 int rank(
double tol = 1e-15)
const;
86 ls::DoubleMatrix inputMatrix_;
87 std::unique_ptr<ls::DoubleMatrix> inputMatrixTranspose_ =
nullptr;
94 ls::DoubleMatrix singularValues_;
95 ls::DoubleMatrix leftSingularVectors_;
96 ls::DoubleMatrix rightSingularVectors_;
The routine computes the singular value decomposition (SVD) of a real m-by-n matrix.
Definition: SVD.h:30
SVD(ls::DoubleMatrix &matrix)
constructor for SVD
Definition: SVD.cpp:13
const ls::DoubleMatrix & getSingularValues() const
returns the singular values computed for input matrix
Definition: SVD.cpp:76
const ls::DoubleMatrix & getLeftSingularVectors() const
returns left singular vectors where columns are the left vectors
Definition: SVD.cpp:80
const ls::DoubleMatrix & getRightSingularVectors() const
returns right singular vectors where rows are the right vectors
Definition: SVD.cpp:84
bool isSingular()
return true when the input matrix is singular.
Definition: SVD.cpp:101
int rank(double tol=1e-15) const
estimates the rank of the matrix by counting non 0 singular values.
Definition: SVD.cpp:88