feral-amf
Approximate Minimum Fill (AMF / HAMF4) fill-reducing ordering for sparse symmetric matrices, implemented in pure Rust on the quotient-graph framework of Amestoy (1999).
- License: MIT
- Dependencies:
feral-ordering-coreonly. - MSRV: stable Rust, edition 2021. No
unsafe.
What AMF does
AMF is a quotient-graph greedy ordering closely related to AMD
(feral-amd), but the per-pivot scoring metric is the approximate
fill introduced by selecting that pivot rather than the
approximate degree. Empirically this produces lower-fill
permutations than AMD on a substantial fraction of structurally
unsymmetric or arrow-shaped matrices, at modest extra cost per
pivot. The HAMF4 variant inherits AMD's mass elimination,
supervariable detection, aggressive absorption, and dense-row
deferral.
Reference
- Amestoy, P. R. (1999). Recent progress in parallel multifrontal solvers. Proceedings of the Fifteenth World Congress on Scientific Computation, Modelling and Applied Mathematics (IMACS-15). The HAMF / HAMF4 algorithm.
Full BibTeX in dev/references.bib of the parent repository.
Contract
feral-amf conforms to the FERAL ordering-crate contract defined by
feral-ordering-core.
Input is a borrowed full-symmetric CscPattern<'_>; output is a
Vec<i32> permutation plus shared and crate-specific stats.
use ;
let col_ptr = ;
let row_idx = ;
let pattern = new.expect;
let perm = amf_order.expect;
See feral-amd's README for a fuller worked example; the API shape
is identical.
License
MIT.