Skip to main content

scotch_order_full

Function scotch_order_full 

Source
pub fn scotch_order_full(
    pattern: &CscPattern<'_>,
    opts: &ScotchOptions,
) -> Result<(Vec<i32>, OrderingStats, ScotchStats), 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 — SCOTCH does not produce them at the ordering boundary; they belong to a downstream symbolic analysis.

Runs the S1–S5 pipeline: optional graph compression, connected- component split, multilevel coarsening, best-of-n_sep_trials initial bisection, halo-FM uncoarsening refinement, direct vertex-separator via two-sided FM, recursion on each side with an AMD leaf fallback at amd_switch.