#include <SparseLUSolverTraits.h>
Generic interface for sparse LU solver backed by Eigen::SparseLU.
This generic interface (common to several sparse solvers), allow to interchange solver solutions when dealing with sparse linear systems. See itk::ParameterizationQuadEdgeMeshFilter for reference.
Definition at line 38 of file SparseLUSolverTraits.h.
Public Types | |
| using | MatrixType = Eigen::SparseMatrix<ValueType> |
| using | SolverType = Eigen::SparseLU<MatrixType> |
| using | ValueType = T |
| using | VectorType = Eigen::Matrix<ValueType, Eigen::Dynamic, 1> |
Static Public Member Functions | |
| static void | AddToMatrix (MatrixType &iA, const unsigned int &iR, const unsigned int &iC, const ValueType &iV) |
| static void | FillMatrix (MatrixType &iA, const unsigned int &iR, const unsigned int &iC, const ValueType &iV) |
| static MatrixType | InitializeSparseMatrix (const unsigned int &iN) |
| static MatrixType | InitializeSparseMatrix (const unsigned int &iRow, const unsigned int &iCol) |
| static VectorType | InitializeVector (const unsigned int &iN) |
| static bool | IsDirectSolver () |
| static void | MatVecMult (const MatrixType &iA, const VectorType &iB, VectorType &oX) |
| static bool | Solve (const MatrixType &iA, const VectorType &iB, VectorType &oX) |
| static bool | Solve (const MatrixType &iA, const VectorType &iBx, const VectorType &iBy, const VectorType &iBz, VectorType &oX, VectorType &oY, VectorType &oZ) |
| static bool | Solve (const MatrixType &iA, const VectorType &iBx, const VectorType &iBy, VectorType &oX, VectorType &oY) |
| static void | Solve (SolverType &solver, const VectorType &iB, VectorType &oX) |
| static void | Solve (SolverType &solver, const VectorType &iBx, const VectorType &iBy, const VectorType &iBz, VectorType &oX, VectorType &oY, VectorType &oZ) |
| static void | Solve (SolverType &solver, const VectorType &iBx, const VectorType &iBy, VectorType &oX, VectorType &oY) |
| using SparseLUSolverTraits< T >::MatrixType = Eigen::SparseMatrix<ValueType> |
Definition at line 42 of file SparseLUSolverTraits.h.
| using SparseLUSolverTraits< T >::SolverType = Eigen::SparseLU<MatrixType> |
Definition at line 44 of file SparseLUSolverTraits.h.
| using SparseLUSolverTraits< T >::ValueType = T |
Definition at line 41 of file SparseLUSolverTraits.h.
| using SparseLUSolverTraits< T >::VectorType = Eigen::Matrix<ValueType, Eigen::Dynamic, 1> |
Definition at line 43 of file SparseLUSolverTraits.h.
|
inlinestatic |
iA[iR][iC] += iV
Definition at line 82 of file SparseLUSolverTraits.h.
|
inlinestatic |
iA[iR][iC] = iV
Definition at line 75 of file SparseLUSolverTraits.h.
|
inlinestatic |
initialize a square sparse matrix of size iN x iN
Definition at line 54 of file SparseLUSolverTraits.h.
|
inlinestatic |
initialize a sparse matrix of size iRow x iCol
Definition at line 61 of file SparseLUSolverTraits.h.
|
inlinestatic |
initialize a vector of size iN
Definition at line 68 of file SparseLUSolverTraits.h.
|
inlinestatic |
Definition at line 47 of file SparseLUSolverTraits.h.
|
inlinestatic |
oX = iA * iB
Definition at line 89 of file SparseLUSolverTraits.h.
|
inlinestatic |
Solve the linear system \( iA \cdot oX = iB \).
Definition at line 96 of file SparseLUSolverTraits.h.
|
inlinestatic |
Solve the linear systems: \( iA \cdot oX = iBx \), \( iA \cdot oY = iBy \), \( iA \cdot oZ = iBz \).
Definition at line 108 of file SparseLUSolverTraits.h.
References Solve().
|
inlinestatic |
Solve the linear systems: \( iA \cdot oX = iBx \), \( iA \cdot oY = iBy \).
Definition at line 124 of file SparseLUSolverTraits.h.
References Solve().
|
inlinestatic |
Solve the linear system \( iA \cdot oX = iB \) reusing the factored matrix.
Definition at line 134 of file SparseLUSolverTraits.h.
|
inlinestatic |
Solve the linear systems: \( iA \cdot oX = iBx \), \( iA \cdot oY = iBy \), \( iA \cdot oZ = iBz \) reusing the factored matrix.
Definition at line 142 of file SparseLUSolverTraits.h.
|
inlinestatic |
Solve the linear systems: \( iA \cdot oX = iBx \), \( iA \cdot oY = iBy \) reusing the factored matrix.
Definition at line 158 of file SparseLUSolverTraits.h.