A class for storing the factorization of an iteration matrix and using it to solve linear systems of equations.
This class exists simply because Eigen AutoDiff puts limitations on what kinds of factorizations can be used; encapsulating the iteration matrix factorizations like this frees the implementer of these kinds of details.
#include <drake/systems/analysis/implicit_integrator.h>
Public Member Functions | |
void | SetAndFactorIterationMatrix (const MatrixX< T > &iteration_matrix) |
Factors a dense matrix (the iteration matrix) using LU factorization, which should be faster than the QR factorization used in the specialized template method for AutoDiffXd below. More... | |
VectorX< T > | Solve (const VectorX< T > &b) const |
Solves a linear system Ax = b for x using the iteration matrix (A) factored using LU decomposition. More... | |
bool | matrix_factored () const |
Returns whether the iteration matrix has been set and factored. More... | |
template<> | |
void | SetAndFactorIterationMatrix (const MatrixX< AutoDiffXd > &iteration_matrix) |
template<> | |
VectorX< AutoDiffXd > | Solve (const VectorX< AutoDiffXd > &b) const |
bool matrix_factored | ( | ) | const |
Returns whether the iteration matrix has been set and factored.
void SetAndFactorIterationMatrix | ( | const MatrixX< T > & | iteration_matrix | ) |
Factors a dense matrix (the iteration matrix) using LU factorization, which should be faster than the QR factorization used in the specialized template method for AutoDiffXd below.
void SetAndFactorIterationMatrix | ( | const MatrixX< AutoDiffXd > & | iteration_matrix | ) |
Solves a linear system Ax = b for x using the iteration matrix (A) factored using LU decomposition.
VectorX< AutoDiffXd > Solve | ( | const VectorX< AutoDiffXd > & | b | ) | const |