Skip to main content

kahip_order_full

Function kahip_order_full 

Source
pub fn kahip_order_full(
    pattern: &CscPattern<'_>,
    opts: &KahipOptions,
) -> Result<(Vec<i32>, OrderingStats, KahipStats), 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.

Runs the K2-K6 pipeline: K5 multilevel edge bisection (coarsen, initial bisect, uncoarsen with K3 flow refinement at each level), K4 boundary-bipartite vertex cover to lift the bisection to a node separator, and recursive nested dissection with an AMD leaf fallback for subgraphs below the mode-dependent switch.

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