Sparse linear algebra » Reference » OrderingMethods module module

Contents

This module is currently for internal use only

It defines various built-in and external ordering methods for sparse matrices. They are typically used to reduce the number of elements during the sparse matrix decomposition (LLT, LU, QR). Precisely, in a preprocessing step, a permutation matrix P is computed using those ordering methods and applied to the columns of the matrix. Using for instance the sparse Cholesky decomposition, it is expected that the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).

Usage : #include <Eigen/OrderingMethods>

A simple usage is as a template parameter in the sparse decomposition classes :

SparseLU<MatrixType, COLAMDOrdering<int> > solver;
SparseQR<MatrixType, COLAMDOrdering<int> > solver;

It is possible as well to call directly a particular ordering method for your own purpose,

AMDOrdering<int> ordering;
PermutationMatrix<Dynamic, Dynamic, int> perm;
SparseMatrix<double> A; 
//Fill the matrix ...

ordering(A, perm); // Call AMD
 // Call the ordering on the pattern of the lower triangular matrix A
ordering(A.selfadjointView<Lower>(), perm);

Classes

template<typename StorageIndex>
class Eigen::AMDOrdering
template<typename StorageIndex>
class Eigen::COLAMDOrdering
template<typename StorageIndex>
class Eigen::NaturalOrdering