iterative scaling algorithm to equilibrate rows and column norms in matrices More...
#include <Scaling.h>
Public Types | |
typedef MatrixType::Index | Index |
typedef _MatrixType | MatrixType |
typedef MatrixType::Scalar | Scalar |
Public Member Functions | |
void | compute (const MatrixType &mat) |
void | computeRef (MatrixType &mat) |
IterScaling () | |
IterScaling (const MatrixType &matrix) | |
VectorXd & | LeftScaling () |
VectorXd & | RightScaling () |
void | setTolerance (double tol) |
~IterScaling () | |
Protected Member Functions | |
void | init () |
Protected Attributes | |
ComputationInfo | m_info |
bool | m_isInitialized |
VectorXd | m_left |
MatrixType | m_matrix |
int | m_maxits |
VectorXd | m_right |
double | m_tol |
iterative scaling algorithm to equilibrate rows and column norms in matrices
This class can be used as a preprocessing tool to accelerate the convergence of iterative methods
This feature is useful to limit the pivoting amount during LU/ILU factorization The scaling strategy as presented here preserves the symmetry of the problem NOTE It is assumed that the matrix does not have empty row or column,
Example with key steps
_MatrixType | the type of the matrix. It should be a real square sparsematrix |
References : D. Ruiz and B. Ucar, A Symmetry Preserving Algorithm for Matrix Scaling, INRIA Research report RR-7552
Definition at line 48 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
typedef MatrixType::Index Eigen::IterScaling< _MatrixType >::Index |
Definition at line 53 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
typedef _MatrixType Eigen::IterScaling< _MatrixType >::MatrixType |
Definition at line 51 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
typedef MatrixType::Scalar Eigen::IterScaling< _MatrixType >::Scalar |
Definition at line 52 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Definition at line 56 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Definition at line 58 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Definition at line 64 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Compute the left and right diagonal matrices to scale the input matrix mat
FIXME This algorithm will be modified such that the diagonal elements are permuted on the diagonal.
Definition at line 73 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Compute the left and right vectors to scale the vectors the input matrix is scaled with the computed vectors at output
Definition at line 143 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inlineprotected |
Definition at line 171 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Get the vector to scale the rows of the matrix
Definition at line 150 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Get the vector to scale the columns of the matrix
Definition at line 157 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
inline |
Set the tolerance for the convergence of the iterative scaling algorithm
Definition at line 164 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
mutableprotected |
Definition at line 179 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 180 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 181 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 178 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 184 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 182 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.
|
protected |
Definition at line 183 of file unsupported/Eigen/src/IterativeSolvers/Scaling.h.