gko::reorder#

Permutation generators for sparse matrices. Each reordering algorithm takes a system matrix and produces a Permutation (or, for Mc64, a Composition of two ScaledPermutation objects) that can be applied to the matrix to reduce fill-in (for sparse direct solvers) or improve numerical stability. For background and a comparison table see the Reordering concept page.

Reduce fill-in for direct / incomplete factorisations#

  • Rcm: Reverse Cuthill–McKee bandwidth reduction (gko::experimental::reorder::Rcm).

  • Amd: Approximate Minimum Degree (gko::experimental::reorder::Amd).

  • NestedDissection: METIS-based nested dissection (gko::experimental::reorder::NestedDissection, declared when CMake finds METIS at configure time).

Improve numerical stability#

  • Mc64: MC64 row permutation with row and column scaling for the max_diagonal_product strategy (gko::experimental::reorder::Mc64); returns a Composition of two ScaledPermutation objects.

Composition#

  • ScaledReordered: wraps fixed diagonal row and column scalings and an RCM reordering around an inner operator so the inner operator works on the transformed system while the application sees the original (gko::experimental::reorder::ScaledReordered).