1 #ifndef SimTK_LINEAR_ALGEBRA_H_
2 #define SimTK_LINEAR_ALGEBRA_H_
62 class FactorLURepBase;
98 class FactorLURepBase *
rep;
103 class FactorQTZRepBase;
141 class FactorQTZRepBase *
rep;
231 class FactorSVDRepBase *
rep;
Includes internal headers providing declarations for the basic SimTK Core classes,...
This is the header file that every Simmath compilation unit should include first.
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64
K::TReal TReal
Definition: CompositeNumericalTypes.h:141
Class to compute Eigen values and Eigen vectors of a matrix.
Definition: LinearAlgebra.h:146
Eigen & operator=(const Eigen &rhs)
void getAllEigenValues(Vector_< T > &values)
get all the eigen values of a matrix
void getFewEigenVectors(Matrix_< T > &vectors, int ilow, int ihi)
get a few eigen vectors of a symmetric matrix which are within a range of indices
class EigenRepBase * rep
Definition: LinearAlgebra.h:180
void getFewEigenValues(Vector_< T > &values, typename CNT< T >::TReal rlow, typename CNT< T >::TReal rhi)
get a few eigen values of a symmetric matrix which are within a range of eigen values
void factor(const Matrix_< ELT > &m)
supply matrix which eigen values will be computed for
void getFewEigenValuesAndVectors(Vector_< VAL > &values, Matrix_< VEC > &vectors, int ilow, int ihi)
get a few eigen values and eigen vectors of a symmetric matrix which are within a range of indices
Eigen(const Matrix_< ELT > &m)
create a default eigen class
void getFewEigenValuesAndVectors(Vector_< VAL > &values, Matrix_< VEC > &vectors, typename CNT< VAL >::TReal rlow, typename CNT< VAL >::TReal rhi)
get a few eigen values and eigen vectors of a symmetric matrix which are within a range of eigen valu...
void getFewEigenVectors(Matrix_< T > &vectors, typename CNT< T >::TReal rlow, typename CNT< T >::TReal rhi)
get a few eigen vectors of a symmetric matrix which are within a range of eigen values
void getFewEigenValues(Vector_< T > &values, int ilow, int ihi)
get a few eigen values of a symmetric matrix which are within a range of indices
void getAllEigenValuesAndVectors(Vector_< VAL > &values, Matrix_< VEC > &vectors)
get all the eigen values and eigen vectors of a matrix
Class for performing LU matrix factorizations.
Definition: LinearAlgebra.h:67
class FactorLURepBase * rep
Definition: LinearAlgebra.h:98
void getL(Matrix_< ELT > &l) const
returns the lower triangle of an LU factorization
int getSingularIndex() const
returns the first diagonal which was found to be singular
bool isSingular() const
returns true if matrix was singular
FactorLU(const Matrix_< ELT > &m)
FactorLU & operator=(const FactorLU &rhs)
void getU(Matrix_< ELT > &u) const
returns the upper triangle of an LU factorization
void inverse(Matrix_< ELT > &m) const
returns the inverse of a matrix using an LU factorization
FactorLU(const FactorLU &c)
void factor(const Matrix_< ELT > &m)
factors a matrix
void solve(const Vector_< ELT > &b, Vector_< ELT > &x) const
solves a single right hand side
void solve(const Matrix_< ELT > &b, Matrix_< ELT > &x) const
solves multiple right hand sides
Class to perform a QTZ (linear least squares) factorization.
Definition: LinearAlgebra.h:107
void solve(const Vector_< ELT > &b, Vector_< ELT > &x) const
solve for a vector x given a right hand side vector b
void factor(const Matrix_< ELT > &m, double rcond)
do QTZ factorization of a matrix for a given reciprocal condition number
FactorQTZ(const Matrix_< ELT > &m)
do QTZ factorization of a matrix
class FactorQTZRepBase * rep
Definition: LinearAlgebra.h:141
FactorQTZ & operator=(const FactorQTZ &rhs)
void factor(const Matrix_< ELT > &m, float rcond)
do QTZ factorization of a matrix for a given reciprocal condition number
FactorQTZ(const Matrix_< ELT > &m, double rcond)
do QTZ factorization of a matrix for a given reciprocal condition number
double getRCondEstimate() const
returns the actual reciprocal condition number at this rank
void factor(const Matrix_< ELT > &m)
do QTZ factorization of a matrix
FactorQTZ(const Matrix_< ELT > &m, float rcond)
do QTZ factorization of a matrix for a given reciprocal condition number
FactorQTZ(const FactorQTZ &c)
void inverse(Matrix_< ELT > &m) const
void solve(const Matrix_< ELT > &b, Matrix_< ELT > &x) const
solve for an array of vectors given multiple right hand sides
int getRank() const
returns the rank of the matrix
Class to compute a singular value decomposition of a matrix.
Definition: LinearAlgebra.h:186
void getSingularValues(Vector_< T > &values)
get just the singular values of the matrix
class FactorSVDRepBase * rep
Definition: LinearAlgebra.h:231
void solve(const Matrix_< ELT > &b, Matrix_< ELT > &x)
solve for a set of x vectors given multiple right hand side vectors using the singular value decompos...
FactorSVD(const Matrix_< ELT > &m, float rcond)
singular value decomposition of a matrix using the specified reciprocal of the condition number rcond
int getRank()
get rank of the matrix
FactorSVD(const Matrix_< ELT > &m)
constructor
FactorSVD(const Matrix_< ELT > &m, double rcond)
singular value decomposition of a matrix using the specified reciprocal of the condition number rcond
FactorSVD(const FactorSVD &c)
copy constructor
void factor(const Matrix_< ELT > &m)
supply the matrix to do a singular value decomposition
FactorSVD & operator=(const FactorSVD &rhs)
copy assign
void getSingularValuesAndVectors(Vector_< typename CNT< T >::TReal > &values, Matrix_< T > &leftVectors, Matrix_< T > &rightVectors)
get the singular values and singular vectors of the matrix
void inverse(Matrix_< ELT > &m)
get inverse of the matrix using singular value decomposition (sometimes called the pseudo inverse)
FactorSVD()
default constructor
void factor(const Matrix_< ELT > &m, double rcond)
supply the matrix to do a singular value decomposition using the specified reciprocal of the conditio...
void factor(const Matrix_< ELT > &m, float rcond)
supply the matrix to do a singular value decomposition using the specified reciprocal of the conditio...
void solve(const Vector_< ELT > &b, Vector_< ELT > &x)
solve for x given a right hand side vector using the singular value decomposition
Base class for the various matrix factorizations.
Definition: LinearAlgebra.h:49
void solve(const Vector_< ELT > &b, Vector_< ELT > &x) const
solves a single right hand side using a factorization
Factor()
Definition: LinearAlgebra.h:52
void solve(const Matrix_< ELT > &b, Matrix_< ELT > &x) const
solves multiple right hand sides using a factorization
Factor(Matrix_< ELT > m)
creates an factorization of a matrix
This is the matrix class intended to appear in user code for large, variable size matrices.
Definition: Matrix_.h:51
This is the vector class intended to appear in user code for large, variable size column vectors.
Definition: Vector_.h:50
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
static const double DefaultRecpCondition
Definition: LinearAlgebra.h:44