Skip to main content

metis_order_full

Function metis_order_full 

Source
pub fn metis_order_full(
    pattern: &CscPattern<'_>,
    opts: &MetisOptions,
) -> Result<(Vec<i32>, OrderingStats, MetisStats), OrderingError>
Expand description

Contract-conforming ordering producer.

Signature matches the shape every FERAL ordering crate must expose per dev/plans/ordering-crate-contract.md: input is a full-symmetric CscPattern and options; output is a three-tuple of (perm, OrderingStats, crate-stats), with errors in OrderingError.

OrderingStats.time_us is the wall-clock time of this call. fill_estimate and flop_estimate stay None — METIS does not produce them at the ordering boundary; they belong to a downstream symbolic analysis.

Runs the M1–M7 pipeline: coarsen, initial bisection, FM, separator construction, and recursive nested dissection with an AMD leaf fallback for subgraphs of at most nd_to_amd_switch vertices.