This documentation is being rewritten. If something looks off, please cross-check with the Boost 1.91.0 Boost.Graph docs and open an issue.

Sparse Matrix Ordering

Reorder the rows and columns of a sparse matrix (represented as a graph) to reduce fill-in during factorization or to improve cache locality. Each vertex represents a row/column; edges represent nonzero entries.

Algorithm When to use

Cuthill-McKee

Reduces bandwidth. The reverse Cuthill-McKee ordering (just reverse the output) is widely used for FEM and sparse linear solvers.

King

Similar to Cuthill-McKee but minimizes the profile instead of bandwidth.

Minimum Degree

Reduces fill-in during Cholesky factorization. Good for symmetric positive definite systems.

Sloan

Reduces both profile and wavefront simultaneously.

Sloan Start/End Vertices

Selects good starting and ending vertices for the Sloan algorithm.

These orderings are evaluated using the metrics in Graph Metrics: bandwidth, profile, and wavefront.