diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 993af4916..62b07a1ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,6 +72,7 @@ jobs: python3 -m unittest scripts/bench/test_primality_negative_sweep.py python3 -m unittest scripts/bench/test_primality_mathlib_proof_sweep.py python3 -m unittest scripts/oracle/test_flint_mpoly_bench.py + python3 -m unittest scripts/oracle/test_flint_fmpq_bench.py python3 -m unittest scripts/oracle/test_singular_mpoly_bench.py python3 -m unittest scripts/oracle/test_rcf_flint_bench.py python3 scripts/ci/check_benches_mathlib_free.py @@ -172,7 +173,7 @@ jobs: - name: Define the hex-dev cache + build target sets run: | echo "HEX_LIB_TARGETS=HexBasic HexTruncatedSeries HexTruncatedSeriesMathlib HexArith HexPoly HexPolyFast HexMvPoly HexModArith HexGF2 HexPolyZ HexRoots HexResultant HexInterval HexIntervalExperiment HexIntervalMathlib HexIntervalMathlibExperiment HexIntervalReplayProbe HexIntervalMathlibReplayProbe HexRealRootsMathlibReplayProbe HexRCFProofProbe HexPolyFp HexGFqRing HexGFqField HexBerlekamp HexHensel HexConway HexGFq HexPrimality HexIntFactor HexPrimalityKernelProbe HexPrimalityElabProbe HexPrimalityMathlibProofProbe HexIntFactorKernelProbe HexMvGcdKernelProbe HexBerlekampZassenhaus HexRealRoots HexMatrix HexRowReduce HexDeterminant HexBareiss HexHermite HexSmith HexCharPoly HexMinPoly HexPolySmith HexGramSchmidt HexLLL HexMatrixMathlib HexHermiteMathlib HexSmithMathlib HexSmithTests HexCharPolyMathlib HexMinPolyMathlib HexPolySmithMathlib HexGramSchmidtMathlib HexLLLMathlib HexBerlekampZassenhausMathlib HexBerlekampZassenhausMathlibProofProbe HexBerlekampMathlibProofProbe HexPrimalityMathlib HexIntFactorMathlib HexPolyFpMathlib HexFactorizationModules HexRealRootsMathlib HexGF2Mathlib HexGFqMathlib HexMvPolyMathlib HexMvPolyMathlibProofProbe HexRCF HexRCFTests HexRootsMathlib HexResultantMathlib HexNumberField HexNumberFieldMathlib HexNumberFieldTower HexNumberFieldTowerMathlib HexReleaseTests HexReleaseExamples HexAggregateCheck" >> "$GITHUB_ENV" - echo "HEX_EXE_TARGETS=hextruncatedseries_bench hexarith_bench hexpoly_bench hexpolyfast_bench hexpolysmith_bench hexmvpoly_bench hexmvgcd_bench hexsparsepoly_bench hexpolyz_bench hexpolyfp_bench hexmodarith_bench hexmodular_bench hexgf2_bench hexgfqring_bench hexgfqfield_bench hexgfq_bench hexhensel_bench hexprimality_bench hexprimality_policy_probe hexprimality_fuel_probe hexintfactor_bench hexberlekamp_bench hexbz_bench hexconway_bench hexmatrix_bench hexstrassen_compare hexdeterminant_bench hexbareiss_bench hexcharpoly_bench hexminpoly_bench hexgramschmidt_bench hexhermite_bench hexsmith_bench hexrealroots_bench hexrcf_bench hexroots_bench hexresultant_bench hexnumberfield_bench hexnumberfieldtower_bench hexinterval_decision_bench hexroots_demo hex_interval_representation_spike hex_interval_center_spike hex_interval_scale_spike hex_interval_scheduler_spike hex_interval_policy_frontier_spike hex_arith_floor hexlll_bench hexlll_gram_bench hexlll_external_reduction hexbz_factor_service" >> "$GITHUB_ENV" + echo "HEX_EXE_TARGETS=hextruncatedseries_bench hexarith_bench hexpoly_bench hexpolyfast_bench hexpolysmith_bench hexmvpoly_bench hexmvgcd_bench hexsparsepoly_bench hexpolyz_bench hexpolyfp_bench hexmodarith_bench hexmodular_bench hexgf2_bench hexgfqring_bench hexgfqfield_bench hexgfq_bench hexhensel_bench hexprimality_bench hexprimality_policy_probe hexprimality_fuel_probe hexintfactor_bench hexberlekamp_bench hexbz_bench hexconway_bench hexmatrix_bench hexstrassen_compare hexrowreduce_bench hexdeterminant_bench hexbareiss_bench hexcharpoly_bench hexminpoly_bench hexgramschmidt_bench hexhermite_bench hexsmith_bench hexrealroots_bench hexrcf_bench hexroots_bench hexresultant_bench hexnumberfield_bench hexnumberfieldtower_bench hexinterval_decision_bench hexroots_demo hex_interval_representation_spike hex_interval_center_spike hex_interval_scale_spike hex_interval_scheduler_spike hex_interval_policy_frontier_spike hex_arith_floor hexlll_bench hexlll_gram_bench hexlll_external_reduction hexbz_factor_service" >> "$GITHUB_ENV" # Shared build. The libraries, bench exes, conformance #guard drivers, and # emit-fixture exes are all elaborated here so the two verification tails # below only *run* things, never rebuild them -- which is what lets the @@ -242,7 +243,7 @@ jobs: hexgf2_bench hexgfqring_bench hexgfqfield_bench hexgfq_bench \ hexhensel_bench hexprimality_bench hexintfactor_bench \ hexberlekamp_bench hexbz_bench \ - hexconway_bench hexdeterminant_bench hexmatrix_bench \ + hexconway_bench hexdeterminant_bench hexmatrix_bench hexrowreduce_bench \ hexhermite_bench hexsmith_bench \ hexcharpoly_bench hexminpoly_bench \ hexgramschmidt_bench hexlll_gram_bench \ diff --git a/HexBerlekamp/PackedKernel.lean b/HexBerlekamp/PackedKernel.lean index 806ed31de..da9e18f85 100644 --- a/HexBerlekamp/PackedKernel.lean +++ b/HexBerlekamp/PackedKernel.lean @@ -875,6 +875,7 @@ theorem nullspaceArray_eq {q : UInt32} (hq : q.toNat = p) by_cases hjf : (⟨j, hj⟩ : Fin m) = hE.toIsEchelonForm.freeCols.get ⟨k, hklt⟩ · rw [ite_eq_left hjf, dite_eq_left hjf] · rw [ite_eq_right hjf, dite_eq_right hjf, pivotRowOf_eq (Matrix.rowReduce E) ⟨j, hj⟩] + rw [Matrix.IsRowReduced.pivotRows_get] cases hpi : Matrix.IsRowReduced.pivotIndex? (Matrix.rowReduce E) (⟨j, hj⟩ : Fin m) with | none => rfl | some i => diff --git a/HexRowReduce/Nullspace.lean b/HexRowReduce/Nullspace.lean index 097eb642c..d57bfbf2f 100644 --- a/HexRowReduce/Nullspace.lean +++ b/HexRowReduce/Nullspace.lean @@ -116,16 +116,28 @@ private theorem pivotIndex?_free_none (E : IsEchelonForm M D) (k : Fin (m - D.ra intro i exact E.pivotCols_disjoint_freeCols i k +omit [Mul R] [Add R] [OfNat R 0] [OfNat R 1] in +/-- Reading the materialized pivot-row table agrees with `pivotIndex?`. -/ +@[simp] theorem pivotRows_get (j : Fin m) : + (Vector.ofFn fun j => pivotIndex? D j).get j = pivotIndex? D j := by + change (Vector.ofFn fun j => pivotIndex? D j)[j] = pivotIndex? D j + simp + /-- Nullspace basis vectors assembled as columns indexed by the free variables. -/ @[expose] def nullspaceMatrix [Lean.Grind.Ring R] (E : IsRowReduced M D) : Matrix R m (m - D.rank) := let freeCols := E.toIsEchelonForm.freeCols + -- Materialize the column-to-pivot-row lookup once. `Matrix.ofFn` then + -- performs constant-time vector reads instead of scanning `pivotCols` for + -- every output entry. + let pivotRows : Vector (Option (Fin D.rank)) m := + Vector.ofFn fun j => pivotIndex? D j Matrix.ofFn fun j k => if hFree : j = freeCols.get k then 1 else - match pivotIndex? D j with + match pivotRows.get j with | some i => -D.echelon[(IsEchelonForm.pivotRow E.toIsEchelonForm i, freeCols.get k)] | none => 0 @@ -145,7 +157,7 @@ def nullspaceMatrix [Lean.Grind.Ring R] (E : IsRowReduced M D) : have hne : E.toIsEchelonForm.freeCols.get l ≠ E.toIsEchelonForm.freeCols.get k := by intro h exact hkl ((E.toIsEchelonForm.freeCols_injective h).symm) - simp [hne, pivotIndex?_free_none E.toIsEchelonForm l] + simp [hne, pivotRows_get, pivotIndex?_free_none E.toIsEchelonForm l] /-- In a pivot-column row, a nullspace-matrix entry is the negative RREF entry in the matching pivot row and free column. -/ @@ -154,7 +166,7 @@ the matching pivot row and free column. -/ E.nullspaceMatrix[D.pivotCols.get i][k] = -(D.echelon[(IsEchelonForm.pivotRow E.toIsEchelonForm i)][E.toIsEchelonForm.freeCols.get k]) := by simp only [nullspaceMatrix, getElem_ofFn] - simp [E.toIsEchelonForm.pivotCols_disjoint_freeCols i k, + simp [pivotRows_get, E.toIsEchelonForm.pivotCols_disjoint_freeCols i k, pivotIndex?_pivot E.toIsEchelonForm i] /-- The individual nullspace basis vectors. diff --git a/HexRowReduce/RowEchelon/Contracts.lean b/HexRowReduce/RowEchelon/Contracts.lean index 73e3e7c08..08faca175 100644 --- a/HexRowReduce/RowEchelon/Contracts.lean +++ b/HexRowReduce/RowEchelon/Contracts.lean @@ -128,6 +128,127 @@ Mathlib-free layer). -/ def freeColsList (_E : IsEchelonForm M D) : List (Fin m) := (List.finRange m).filter fun j => j ∉ D.pivotCols.toList +/-- Linear merge used by the compiled implementation of `freeColsList`. + +The second list is a sorted sublist of the first. Matching heads are +discarded; otherwise the first head belongs to the complement. Both recursive +calls consume a column, and a matching call also consumes a pivot, so the loop +is linear in the two input lengths. -/ +@[expose] +def sortedComplement [DecidableEq α] : List α → List α → List α + | xs, [] => xs + | [], _ => [] + | x :: xs, y :: ys => + if x = y then + sortedComplement xs ys + else + x :: sortedComplement xs (y :: ys) + +private theorem sortedComplement_eq_filter [DecidableEq α] + {pivots cols : List α} (hsub : pivots.Sublist cols) (hnodup : cols.Nodup) : + sortedComplement cols pivots = cols.filter fun x => x ∉ pivots := by + induction hsub with + | slnil => simp [sortedComplement] + | @cons pivots cols x hsub ih => + have hnot : x ∉ pivots := by + intro hx + exact (List.nodup_cons.mp hnodup).1 (hsub.subset hx) + cases pivots with + | nil => + rw [sortedComplement] + symm + apply List.filter_eq_self.mpr + intro z hz + simp + | cons y ys => + have hxy : x ≠ y := by + intro h + subst y + exact hnot (by simp) + rw [sortedComplement, if_neg hxy] + rw [ih (List.nodup_cons.mp hnodup).2] + rw [List.filter_cons] + have hp : (decide (x ∉ y :: ys) : Bool) = true := decide_eq_true hnot + rw [hp] + simp + | @cons_cons pivots cols x hsub ih => + rw [sortedComplement, if_pos rfl, List.filter_cons_of_neg (by simp)] + rw [ih (List.nodup_cons.mp hnodup).2] + apply List.filter_congr + intro z hz + have hzx : z ≠ x := by + intro h + subst z + exact (List.nodup_cons.mp hnodup).1 hz + simp [hzx] + +private theorem pairwise_perm_eq {xs ys : List (Fin m)} + (hxs : List.Pairwise (fun a b : Fin m => a < b) xs) + (hys : List.Pairwise (fun a b : Fin m => a < b) ys) + (hperm : xs.Perm ys) : xs = ys := by + induction xs generalizing ys with + | nil => exact hperm.symm.eq_nil.symm + | cons x xs ih => + cases ys with + | nil => + have hlen := hperm.length_eq + simp at hlen + | cons y ys => + have hxmem : x ∈ y :: ys := hperm.subset (by simp) + have hymem : y ∈ x :: xs := hperm.symm.subset (by simp) + have hxy : x = y := by + rcases List.mem_cons.mp hxmem with h | hx + · exact h + · rcases List.mem_cons.mp hymem with h | hy + · exact h.symm + · have hyx : y < x := (List.pairwise_cons.mp hys).1 x hx + have hxy : x < y := (List.pairwise_cons.mp hxs).1 y hy + omega + subst y + simp only [List.cons.injEq, true_and] + exact ih (List.pairwise_cons.mp hxs).2 (List.pairwise_cons.mp hys).2 + hperm.cons_inv + +/-- Runtime implementation of `freeColsList`, merging the sorted pivot columns +with the complete sorted column range. -/ +@[expose] +def freeColsListImpl (_E : IsEchelonForm M D) : List (Fin m) := + sortedComplement (List.finRange m) D.pivotCols.toList + +private theorem pivotCols_sublist_finRange (E : IsEchelonForm M D) : + D.pivotCols.toList.Sublist (List.finRange m) := by + let p : Fin m → Bool := fun j => decide (j ∈ D.pivotCols.toList) + have hfilterPairs : List.Pairwise (fun a b : Fin m => a < b) + ((List.finRange m).filter p) := by + exact List.Pairwise.filter p (List.pairwise_lt_finRange m) + have hfilterNodup : ((List.finRange m).filter p).Nodup := by + rw [List.nodup_iff_pairwise_ne] + exact hfilterPairs.imp (fun hlt heq => by subst heq; omega) + have hperm : D.pivotCols.toList.Perm ((List.finRange m).filter p) := by + rw [List.perm_ext_iff_of_nodup E.pivotCols_nodup hfilterNodup] + intro a + constructor + · intro ha + rw [List.mem_filter] + exact ⟨List.mem_finRange a, show p a = true from by exact decide_eq_true ha⟩ + · intro ha + rw [List.mem_filter] at ha + exact of_decide_eq_true ha.2 + have heq : D.pivotCols.toList = (List.finRange m).filter p := + pairwise_perm_eq E.pivotCols_pairwise hfilterPairs hperm + rw [heq] + exact List.filter_sublist + +/-- Register the linear merge as the compiled implementation of +`freeColsList`. The proof keeps the specification and all theorem-facing +unfolding unchanged. -/ +@[csimp] +theorem freeColsList_eq_impl : @freeColsList = @freeColsListImpl := by + funext R n m _ _ _ _ M D E + unfold freeColsList freeColsListImpl + exact (sortedComplement_eq_filter (E.pivotCols_sublist_finRange) + (List.nodup_finRange m)).symm + /-- The number of free columns is the ambient column count minus the rank. -/ theorem freeColsList_length (E : IsEchelonForm M D) : E.freeColsList.length = m - D.rank := by diff --git a/HexRowReduce/SPEC/hex-row-reduce.md b/HexRowReduce/SPEC/hex-row-reduce.md index a2c9311e6..62f1e00e3 100644 --- a/HexRowReduce/SPEC/hex-row-reduce.md +++ b/HexRowReduce/SPEC/hex-row-reduce.md @@ -106,11 +106,46 @@ with `colPartition` (free columns telescope to `v[freeCols[l]]`; pivot columns follow from `pivot_one` / `above_pivot_zero` / `below_pivot_zero` / `zero_row`); package into `E.nullspaceMatrix * c = v`. +## Complexity and benchmark contract + +For an `n × m` matrix of rank `r`, Gauss--Jordan reduction performs at most +`r` pivot stages and visits `O(n(n + m))` entries per stage across the echelon +and transform matrices. The arithmetic-operation bound is therefore +`O(rn(n + m))`, cubic on the fixed-aspect square benchmark families. Exact +rational bit cost additionally depends on numerator and denominator growth. + +The compiled implementation uses a proved linear sorted merge for the +free-column complement. Prepared nullspace construction materializes the +column-to-pivot-row lookup once and then writes `m(m - r)` output entries with +constant-time lookup per entry; its fixed-aspect bound is quadratic. + +`bench/HexRowReduce/Bench.lean` gives all 12 advertised executable operations +direct mode-1 coverage: + +| Operations | Prepared state | Model | +| --- | --- | --- | +| `Matrix.rowReduce`, `Matrix.rowReduce_rank` | dense input | `n³` | +| `Matrix.spanCoeffs`, `Matrix.spanContains` | dense input | `n³` | +| `IsEchelonForm.spanCoeffs`, `IsEchelonForm.spanContains` | proved RREF | `n²` | +| `IsEchelonForm.echelonCoeffs`, `IsEchelonForm.freeCols` | proved RREF | `n` | +| `Matrix.nullspaceBasisMatrix`, `Matrix.nullspace` | deficient input | `n³` | +| `IsRowReduced.nullspaceMatrix`, `IsRowReduced.nullspace` | proved RREF | `n²` | + +The dense family is `I + J`, so every pivot fires while coefficient heights +remain controlled. The deficient family has rank and nullity `n / 2`. +Preparation is outside the timed region and result forcing is inside it. + ## External comparators -The `rank`, `rowReduce`, and `nullspace` operations are cross-checked for correctness -against python-flint's `fmpz_mat` / `fmpq_mat` through the conformance oracle -(`scripts/oracle/matrix_flint.py`, driven by `hexrowreduce_emit_fixtures`). -There is no Phase-4 performance comparator: row reduction is an exact rational -computation validated for correctness, not timed against an external tool. See -`reports/hex-row-reduce-performance.md`. +The identical constant-size rank result is compared informationally with +python-flint's `fmpq_mat.rref()` through the shared persistent driver. Both +arms use the same dense `I + J` family; construction is cached during warmup, +and each timed request returns only the integer rank. + +The remaining operations declare +`no-comparable-surface-in-named-comparator`: Hex `rowReduce` returns the row +transform that `fmpq_mat.rref()` omits; python-flint 0.9.0's `fmpq_mat` has no +native nullspace callable; and span coefficients are transform-dependent +witnesses. A comparator-specific derived algorithm would not be the same +callable surface. Full RREF and nullspace correctness remain cross-checked by +`scripts/oracle/matrix_flint.py`, driven by `hexrowreduce_emit_fixtures`. diff --git a/bench/HexRowReduce/Bench.lean b/bench/HexRowReduce/Bench.lean new file mode 100644 index 000000000..2199a1824 --- /dev/null +++ b/bench/HexRowReduce/Bench.lean @@ -0,0 +1,280 @@ +/- +Copyright (c) 2026 Lean FRO, LLC. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Kim Morrison +-/ + +import HexRowReduce +import Hex.BenchOracle.Flint +import Lean.Data.Json +import LeanBench + +/-! +Mode-1 benchmarks for every advertised executable `HexRowReduce` operation. + +The dense family is `I + J`: every column supplies a pivot while rational +heights remain bounded. The deficient family repeats the rows and columns of +the half-size dense matrix, giving rank and nullity `n / 2`. Prepared targets +receive their proved RREF data outside the timed region. +-/ + +namespace Hex.RowReduceBench + +structure Input where + n : Nat + matrix : Matrix Rat n n + query : Vector Rat n + +private def vectorChecksum {n : Nat} (v : Vector Rat n) : UInt64 := + hash v.toArray + +private def matrixChecksum {n m : Nat} (M : Matrix Rat n m) : UInt64 := + M.rows.toArray.foldl + (fun checksum row => mixHash checksum (vectorChecksum row)) (hash n) + +instance : Hashable Input where + hash input := mixHash (hash input.n) <| + mixHash (matrixChecksum input.matrix) (vectorChecksum input.query) + +structure ReducedInput where + n : Nat + source : Matrix Rat n n + data : Matrix.RowEchelonData Rat n n + reduced : Matrix.IsRowReduced source data + query : Vector Rat n + +instance : Hashable ReducedInput where + hash input := mixHash (hash input.n) <| + mixHash (matrixChecksum input.source) <| + mixHash (matrixChecksum input.data.echelon) <| + mixHash (matrixChecksum input.data.transform) <| + mixHash (hash input.data.pivotCols.toArray) (vectorChecksum input.query) + +def dense (n : Nat) : Input := + let matrix : Matrix Rat n n := + Matrix.ofFn fun i j => if i = j then 2 else 1 + let query : Vector Rat n := + Vector.ofFn fun j => if j.val = 0 then 2 else 1 + { n, matrix, query } + +def deficient (n : Nat) : Input := + let rank := n / 2 + let matrix : Matrix Rat n n := Matrix.ofFn fun i j => + if rank = 0 then 0 + else if i.val % rank = j.val % rank then 2 else 1 + let query : Vector Rat n := Vector.ofFn fun j => + if rank = 0 then 0 else if j.val % rank = 0 then 2 else 1 + { n, matrix, query } + +/-- Already-reduced projection used to prepare contract-level targets without +coefficient growth. -/ +def reducedDeficient (n : Nat) : Input := + let rank := n / 2 + let matrix : Matrix Rat n n := Matrix.ofFn fun i j => + if i = j ∧ i.val < rank then 1 else 0 + let query : Vector Rat n := Vector.ofFn fun j => + if j.val = 0 ∧ 0 < rank then 1 else 0 + { n, matrix, query } + +def denseReduced (n : Nat) : ReducedInput := + let input := dense n + let data := Matrix.rowReduce input.matrix + { n, source := input.matrix, data + reduced := Matrix.rowReduce_isRowReduced input.matrix + query := input.query } + +def deficientReduced (n : Nat) : ReducedInput := + let input := reducedDeficient n + let data := Matrix.rowReduce input.matrix + { n, source := input.matrix, data + reduced := Matrix.rowReduce_isRowReduced input.matrix + query := input.query } + +def runReduce (input : Input) : UInt64 := + let result := Matrix.rowReduce input.matrix + mixHash (hash result.rank) <| + mixHash (matrixChecksum result.echelon) <| + mixHash (matrixChecksum result.transform) (hash result.pivotCols.toArray) + +def runRank (input : Input) : Nat := + Matrix.rowReduce_rank input.matrix + +def runSpanCoeffs (input : Input) : UInt64 := + match Matrix.spanCoeffs input.matrix input.query with + | some coefficients => vectorChecksum coefficients + | none => 0 + +def runSpanContains (input : Input) : Bool := + Matrix.spanContains input.matrix input.query + +def runEchelonSpanCoeffs (input : ReducedInput) : UInt64 := + match input.reduced.toIsEchelonForm.spanCoeffs input.query with + | some coefficients => vectorChecksum coefficients + | none => 0 + +def runEchelonSpanContains (input : ReducedInput) : Bool := + input.reduced.toIsEchelonForm.spanContains input.query + +def runEchelonCoeffs (input : ReducedInput) : UInt64 := + vectorChecksum (input.reduced.toIsEchelonForm.echelonCoeffs input.query) + +def runFreeCols (input : ReducedInput) : UInt64 := + hash input.reduced.toIsEchelonForm.freeCols.toArray + +def runNullspaceMatrix (input : Input) : UInt64 := + hash (Matrix.nullspaceBasisMatrix input.matrix).data.toArray + +def runNullspace (input : Input) : UInt64 := + (Matrix.nullspace input.matrix).toArray.foldl + (fun checksum vector => mixHash checksum (vectorChecksum vector)) (hash input.n) + +def runReducedMatrix (input : ReducedInput) : UInt64 := + matrixChecksum input.reduced.nullspaceMatrix + +def runReducedNullspace (input : ReducedInput) : UInt64 := + input.reduced.nullspace.toArray.foldl + (fun checksum vector => mixHash checksum (vectorChecksum vector)) (hash input.n) + +private def cubicSchedule : Array Nat := #[8, 12, 16, 24, 32, 48, 64] +private def spanSchedule : Array Nat := #[16, 24, 32, 48, 64, 96, 128, 192] +-- Use one stable allocation regime per ladder. The cheap prepared targets +-- use two-second inner batches to clear the default 10× per-spawn signal floor. +private def linearSchedule : Array Nat := #[128, 192, 256, 384, 512] +private def quadraticSchedule : Array Nat := #[128, 192, 256, 384, 512, 768] +private def quadraticVectorSchedule : Array Nat := #[256, 320, 384, 448, 512, 640, 768] + +/- Each of the four public wrappers performs dense Gauss--Jordan elimination: +`n` pivots, `n` row updates, and `n` entries per update. -/ +-- Cubic: `n` pivots times `n` row updates times `n` entries per update. +setup_benchmark runReduce n => n ^ 3 with prep := Hex.RowReduceBench.dense where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +-- Cubic: rank first performs the same dense Gauss--Jordan elimination. +setup_benchmark runRank n => n ^ 3 with prep := Hex.RowReduceBench.dense where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +-- Cubic: the public wrapper is dominated by dense Gauss--Jordan elimination. +setup_benchmark runSpanCoeffs n => n ^ 3 with prep := Hex.RowReduceBench.dense where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +-- Cubic: the public wrapper is dominated by dense Gauss--Jordan elimination. +setup_benchmark runSpanContains n => n ^ 3 with prep := Hex.RowReduceBench.dense where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +/- Prepared span solving performs a transform-vector product and residual +check, each visiting a square matrix. -/ +-- Quadratic: one transform-vector product and one square residual check. +setup_benchmark runEchelonSpanCoeffs n => n ^ 2 with prep := Hex.RowReduceBench.denseReduced where { + paramFloor := 16, paramCeiling := 192, paramSchedule := .custom spanSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +-- Quadratic: one transform-vector product and one square residual check. +setup_benchmark runEchelonSpanContains n => n ^ 2 with prep := Hex.RowReduceBench.denseReduced where { + paramFloor := 16, paramCeiling := 192, paramSchedule := .custom spanSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +/- Prepared coefficient selection and the proved sorted-complement merge each +traverse vectors/lists of length proportional to `n`. -/ +-- Linear: coefficient selection traverses vectors of length proportional to `n`. +setup_benchmark runEchelonCoeffs n => n with prep := Hex.RowReduceBench.deficientReduced where { + paramFloor := 128, paramCeiling := 512, paramSchedule := .custom linearSchedule + targetInnerNanos := 2_000_000_000, outerTrials := 7, maxSecondsPerCall := 10.0 +} + +-- Linear: the proved sorted-complement merge visits each column once. +setup_benchmark runFreeCols n => n with prep := Hex.RowReduceBench.deficientReduced where { + paramFloor := 128, paramCeiling := 512, paramSchedule := .custom linearSchedule + targetInnerNanos := 2_000_000_000, outerTrials := 7, maxSecondsPerCall := 10.0 +} + +/- Public nullspace wrappers are dominated by the cubic RREF phase; their +rank and nullity are both `n / 2`. -/ +-- Cubic: public construction is dominated by RREF before basis materialization. +setup_benchmark runNullspaceMatrix n => n ^ 3 with prep := Hex.RowReduceBench.deficient where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +-- Cubic: public construction is dominated by RREF before basis materialization. +setup_benchmark runNullspace n => n ^ 3 with prep := Hex.RowReduceBench.deficient where { + paramFloor := 8, paramCeiling := 64, paramSchedule := .custom cubicSchedule + targetInnerNanos := 1_000_000_000, outerTrials := 5, maxSecondsPerCall := 10.0 +} + +/- Prepared nullspace constructors materialize `n * (n - r)` entries. The +column-to-pivot lookup is prepared once, so each output entry is constant-time +apart from rational access/negation. -/ +-- Quadratic: materialize `n * (n - r)` entries with `r = n / 2`. +setup_benchmark runReducedMatrix n => n ^ 2 with prep := Hex.RowReduceBench.deficientReduced where { + paramFloor := 128, paramCeiling := 768, paramSchedule := .custom quadraticSchedule + targetInnerNanos := 2_000_000_000, outerTrials := 7, maxSecondsPerCall := 10.0 +} + +-- Quadratic: materialize `n * (n - r)` vector entries with `r = n / 2`. +setup_benchmark runReducedNullspace n => n ^ 2 with prep := Hex.RowReduceBench.deficientReduced where { + paramFloor := 256, paramCeiling := 768, paramSchedule := .custom quadraticVectorSchedule + targetInnerNanos := 2_000_000_000, outerTrials := 7, maxSecondsPerCall := 10.0 +} + +/-! Informational FLINT comparison for the one identical callable result: +rank of dense `I + J`. Both fixed endpoints return only `Nat`; full RREF and +nullspace values remain conformance-oracle responsibilities. -/ + +def runRankAt (n : Nat) : Unit → IO Nat := + let input := dense n + fun _ => return runRank input + +def runFlintRankAt (n : Nat) (_ : Unit) : IO Nat := do + let result ← Hex.BenchOracle.Flint.runOp "fmpq_mat" "rank_dense" + #[("n", Lean.Json.num n)] + match result.getNat? with + | Except.ok rank => return rank + | Except.error msg => throw <| IO.userError s!"FLINT fmpq_mat rank is not natural: {msg}" + +def runFlintOverhead (_ : Unit) : IO Nat := do + let result ← Hex.BenchOracle.Flint.runOp "fmpq_mat" "overhead" #[] + match result.getNat? with + | Except.ok value => return value + | Except.error msg => throw <| IO.userError s!"FLINT fmpq_mat overhead is not natural: {msg}" + +def runRank16 := runRankAt 16 +def runRank24 := runRankAt 24 +def runRank32 := runRankAt 32 +def runRank48 := runRankAt 48 +def runRank64 := runRankAt 64 +def runFlintRank16 := runFlintRankAt 16 +def runFlintRank24 := runFlintRankAt 24 +def runFlintRank32 := runFlintRankAt 32 +def runFlintRank48 := runFlintRankAt 48 +def runFlintRank64 := runFlintRankAt 64 + +def compareConfig (expected : UInt64) : LeanBench.FixedBenchmarkConfig := + { repeats := 5, maxSecondsPerCall := 10.0, minTotalSeconds := 0.2, + warmupFirstIter := true, expectedHash := some expected } + +setup_fixed_benchmark runFlintOverhead where compareConfig (hash (0 : Nat)) +setup_fixed_benchmark runRank16 where compareConfig (hash (16 : Nat)) +setup_fixed_benchmark runFlintRank16 where compareConfig (hash (16 : Nat)) +setup_fixed_benchmark runRank24 where compareConfig (hash (24 : Nat)) +setup_fixed_benchmark runFlintRank24 where compareConfig (hash (24 : Nat)) +setup_fixed_benchmark runRank32 where compareConfig (hash (32 : Nat)) +setup_fixed_benchmark runFlintRank32 where compareConfig (hash (32 : Nat)) +setup_fixed_benchmark runRank48 where compareConfig (hash (48 : Nat)) +setup_fixed_benchmark runFlintRank48 where compareConfig (hash (48 : Nat)) +setup_fixed_benchmark runRank64 where compareConfig (hash (64 : Nat)) +setup_fixed_benchmark runFlintRank64 where compareConfig (hash (64 : Nat)) + +end Hex.RowReduceBench + +def main (args : List String) : IO UInt32 := + LeanBench.Cli.dispatch args diff --git a/lakefile.lean b/lakefile.lean index ed22dbd4a..efc2f4d75 100644 --- a/lakefile.lean +++ b/lakefile.lean @@ -1050,6 +1050,10 @@ lean_exe hexmatrix_bench where srcDir := "bench" root := `HexMatrix.Bench +lean_exe hexrowreduce_bench where + srcDir := "bench" + root := `HexRowReduce.Bench + lean_exe hexdeterminant_bench where srcDir := "bench" root := `HexDeterminant.Bench diff --git a/libraries.yml b/libraries.yml index 0fa1bbed4..66c16745a 100644 --- a/libraries.yml +++ b/libraries.yml @@ -246,8 +246,18 @@ libraries: HexRowReduce: deps: [HexMatrix] mathlib: false - done_through: 3 + done_through: 4 status: active + phase4: + comparators: + - tool: "FLINT fmpq_mat.rref rank via python-flint" + class: informational + rationale: "The rank result is identical and constant-size, so cached dense inputs permit a valid persistent-subprocess comparison. Full rowReduce is not paired because Hex additionally returns the row transform; nullspace and span witnesses have no native identical callable result in python-flint." + input_families: + - name: dense-rational-rref + description: Dense square rational I + J matrices with a pivot in every column and nonzero elimination above and below every pivot, plus a known row-span member. + - name: rank-deficient-rational-nullspace + description: Rank-and-nullity n / 2 rational matrices, using repeated I + J for public wrappers and an already-reduced sparse projection to isolate free columns, echelon coefficients, and contract-level nullspace construction. HexDeterminant: deps: [HexMatrix] mathlib: false diff --git a/reports/bench-results/hex-row-reduce-phase4-scientific.json b/reports/bench-results/hex-row-reduce-phase4-scientific.json new file mode 100644 index 000000000..bf232519c --- /dev/null +++ b/reports/bench-results/hex-row-reduce-phase4-scientific.json @@ -0,0 +1,7308 @@ +{"results": + [{"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.005538, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 218479.473633, + "median_per_call_nanos": 219527.053711, + "max_per_call_nanos": 219695.205566}, + {"relative_spread": 0.041636, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 732329.428711, + "median_per_call_nanos": 738924.733398, + "max_per_call_nanos": 763095.363281}, + {"relative_spread": 0.016022, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 1738541.205078, + "median_per_call_nanos": 1748235.8125, + "max_per_call_nanos": 1766550.892578}, + {"relative_spread": 0.019383, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 5833796.34375, + "median_per_call_nanos": 5885627.882812, + "max_per_call_nanos": 5947879.578125}, + {"relative_spread": 0.008714, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 13743437.046875, + "median_per_call_nanos": 13847671.796875, + "max_per_call_nanos": 13864112.125}, + {"relative_spread": 0.015822, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 46310875.375, + "median_per_call_nanos": 46644917.375, + "max_per_call_nanos": 47048912.375}, + {"relative_spread": 0.017674, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 110082787, + "median_per_call_nanos": 110907151.125, + "max_per_call_nanos": 112042986}], + "spawn_floor_nanos": 50290888, + "slope": -0.008081, + "ratios": + [[8, 428.763777], + [12, 427.61848], + [16, 426.815384], + [24, 425.754332], + [32, 422.597406], + [48, 421.774788], + [64, 423.077206]], + "points": + [{"trial_index": 0, + "total_nanos": 899507610, + "status": "ok", + "result_hash": "0x8", + "per_call_nanos": 219606.350098, + "peak_rss_kb": 61956, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 899871562, + "status": "ok", + "result_hash": "0x8", + "per_call_nanos": 219695.205566, + "peak_rss_kb": 62436, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 896440407, + "status": "ok", + "result_hash": "0x8", + "per_call_nanos": 218857.52124, + "peak_rss_kb": 68436, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 899182812, + "status": "ok", + "result_hash": "0x8", + "per_call_nanos": 219527.053711, + "peak_rss_kb": 68328, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 894891924, + "status": "ok", + "result_hash": "0x8", + "per_call_nanos": 218479.473633, + "peak_rss_kb": 68440, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 749905335, + "status": "ok", + "result_hash": "0xc", + "per_call_nanos": 732329.428711, + "peak_rss_kb": 68604, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 757622133, + "status": "ok", + "result_hash": "0xc", + "per_call_nanos": 739865.364258, + "peak_rss_kb": 68132, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 754438756, + "status": "ok", + "result_hash": "0xc", + "per_call_nanos": 736756.597656, + "peak_rss_kb": 67992, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 781409652, + "status": "ok", + "result_hash": "0xc", + "per_call_nanos": 763095.363281, + "peak_rss_kb": 68004, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 756658927, + "status": "ok", + "result_hash": "0xc", + "per_call_nanos": 738924.733398, + "peak_rss_kb": 68376, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 890133097, + "status": "ok", + "result_hash": "0x10", + "per_call_nanos": 1738541.205078, + "peak_rss_kb": 66424, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 893263107, + "status": "ok", + "result_hash": "0x10", + "per_call_nanos": 1744654.505859, + "peak_rss_kb": 67992, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 895096736, + "status": "ok", + "result_hash": "0x10", + "per_call_nanos": 1748235.8125, + "peak_rss_kb": 68116, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 900573254, + "status": "ok", + "result_hash": "0x10", + "per_call_nanos": 1758932.136719, + "peak_rss_kb": 68324, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 904474057, + "status": "ok", + "result_hash": "0x10", + "per_call_nanos": 1766550.892578, + "peak_rss_kb": 67924, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 746725932, + "status": "ok", + "result_hash": "0x18", + "per_call_nanos": 5833796.34375, + "peak_rss_kb": 68600, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 754981779, + "status": "ok", + "result_hash": "0x18", + "per_call_nanos": 5898295.148438, + "peak_rss_kb": 67904, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 761328586, + "status": "ok", + "result_hash": "0x18", + "per_call_nanos": 5947879.578125, + "peak_rss_kb": 67908, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 749620394, + "status": "ok", + "result_hash": "0x18", + "per_call_nanos": 5856409.328125, + "peak_rss_kb": 65248, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 753360369, + "status": "ok", + "result_hash": "0x18", + "per_call_nanos": 5885627.882812, + "peak_rss_kb": 65120, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 881711917, + "status": "ok", + "result_hash": "0x20", + "per_call_nanos": 13776748.703125, + "peak_rss_kb": 65264, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 886250995, + "status": "ok", + "result_hash": "0x20", + "per_call_nanos": 13847671.796875, + "peak_rss_kb": 68300, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 887303176, + "status": "ok", + "result_hash": "0x20", + "per_call_nanos": 13864112.125, + "peak_rss_kb": 68052, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 886929453, + "status": "ok", + "result_hash": "0x20", + "per_call_nanos": 13858272.703125, + "peak_rss_kb": 68592, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 879579971, + "status": "ok", + "result_hash": "0x20", + "per_call_nanos": 13743437.046875, + "peak_rss_kb": 67904, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 752782598, + "status": "ok", + "result_hash": "0x30", + "per_call_nanos": 47048912.375, + "peak_rss_kb": 68448, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 740974006, + "status": "ok", + "result_hash": "0x30", + "per_call_nanos": 46310875.375, + "peak_rss_kb": 67996, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 746318678, + "status": "ok", + "result_hash": "0x30", + "per_call_nanos": 46644917.375, + "peak_rss_kb": 68396, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 745037180, + "status": "ok", + "result_hash": "0x30", + "per_call_nanos": 46564823.75, + "peak_rss_kb": 68144, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 746688358, + "status": "ok", + "result_hash": "0x30", + "per_call_nanos": 46668022.375, + "peak_rss_kb": 67992, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 891444803, + "status": "ok", + "result_hash": "0x40", + "per_call_nanos": 111430600.375, + "peak_rss_kb": 66968, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 886117788, + "status": "ok", + "result_hash": "0x40", + "per_call_nanos": 110764723.5, + "peak_rss_kb": 68512, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 887257209, + "status": "ok", + "result_hash": "0x40", + "per_call_nanos": 110907151.125, + "peak_rss_kb": 67892, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 896343888, + "status": "ok", + "result_hash": "0x40", + "per_call_nanos": 112042986, + "peak_rss_kb": 65684, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 880662296, + "status": "ok", + "result_hash": "0x40", + "per_call_nanos": 110082787, + "peak_rss_kb": 68024, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runRank", + "env": + {"timestamp_unix_ms": 1788229470325, + "timestamp_iso": "2026-09-01T02:24:30Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 421.774788, + "c_max": 427.61848, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.013481, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 117352.364868, + "median_per_call_nanos": 117872.875366, + "max_per_call_nanos": 118941.369751}, + {"relative_spread": 0.014425, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 266537.340576, + "median_per_call_nanos": 269281.075928, + "max_per_call_nanos": 270421.737793}, + {"relative_spread": 0.010692, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 471573.950195, + "median_per_call_nanos": 472804.741699, + "max_per_call_nanos": 476629.322266}, + {"relative_spread": 0.015933, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 1045593.408203, + "median_per_call_nanos": 1054511.632812, + "max_per_call_nanos": 1062394.641602}, + {"relative_spread": 0.033635, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 1859127.826172, + "median_per_call_nanos": 1874929.326172, + "max_per_call_nanos": 1922190.193359}, + {"relative_spread": 0.032684, + "param": 96, + "ok_count": 5, + "min_per_call_nanos": 4119644.230469, + "median_per_call_nanos": 4179747.257812, + "max_per_call_nanos": 4256256.972656}, + {"relative_spread": 0.01307, + "param": 128, + "ok_count": 5, + "min_per_call_nanos": 7454368.789062, + "median_per_call_nanos": 7494770.828125, + "max_per_call_nanos": 7552322.03125}, + {"relative_spread": 0.030635, + "param": 192, + "ok_count": 5, + "min_per_call_nanos": 16572586.140625, + "median_per_call_nanos": 17067111.90625, + "max_per_call_nanos": 17095435.125}], + "spawn_floor_nanos": 22992860, + "slope": -0.005764, + "ratios": + [[16, 460.440919], + [24, 467.501868], + [32, 461.723381], + [48, 457.687341], + [64, 457.746418], + [96, 453.531603], + [128, 457.444509], + [192, 462.975041]], + "points": + [{"trial_index": 0, + "total_nanos": 962494177, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 117491.964966, + "peak_rss_kb": 68348, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 961350573, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 117352.364868, + "peak_rss_kb": 68588, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 965614595, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 117872.875366, + "peak_rss_kb": 68200, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 972687128, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 118736.22168, + "peak_rss_kb": 67952, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 974367701, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 118941.369751, + "peak_rss_kb": 65060, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 553823719, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 270421.737793, + "peak_rss_kb": 64736, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 553571094, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 270298.385742, + "peak_rss_kb": 67820, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1091736947, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 266537.340576, + "peak_rss_kb": 68300, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1093606770, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 266993.840332, + "peak_rss_kb": 68548, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1102975287, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 269281.075928, + "peak_rss_kb": 68400, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 968304111, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 472804.741699, + "peak_rss_kb": 68324, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 976136852, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 476629.322266, + "peak_rss_kb": 67872, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 967555814, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 472439.362305, + "peak_rss_kb": 68340, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 969290687, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 473286.468262, + "peak_rss_kb": 66736, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 965783450, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 471573.950195, + "peak_rss_kb": 66472, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1070687650, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 1045593.408203, + "peak_rss_kb": 68472, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1085756998, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 1060309.568359, + "peak_rss_kb": 67708, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1087892113, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 1062394.641602, + "peak_rss_kb": 67964, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1072550485, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 1047412.583008, + "peak_rss_kb": 68316, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1079819912, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 1054511.632812, + "peak_rss_kb": 68344, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 984161379, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 1922190.193359, + "peak_rss_kb": 68032, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 952089863, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 1859550.513672, + "peak_rss_kb": 68264, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 959963815, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 1874929.326172, + "peak_rss_kb": 68244, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 963066776, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 1880989.796875, + "peak_rss_kb": 68248, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 951873447, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 1859127.826172, + "peak_rss_kb": 68312, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1054628923, + "status": "ok", + "result_hash": "0x3ea4b771d0f57ea4", + "per_call_nanos": 4119644.230469, + "peak_rss_kb": 67908, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1065443755, + "status": "ok", + "result_hash": "0x3ea4b771d0f57ea4", + "per_call_nanos": 4161889.667969, + "peak_rss_kb": 68272, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1089601785, + "status": "ok", + "result_hash": "0x3ea4b771d0f57ea4", + "per_call_nanos": 4256256.972656, + "peak_rss_kb": 68544, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1088371003, + "status": "ok", + "result_hash": "0x3ea4b771d0f57ea4", + "per_call_nanos": 4251449.230469, + "peak_rss_kb": 68540, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1070015298, + "status": "ok", + "result_hash": "0x3ea4b771d0f57ea4", + "per_call_nanos": 4179747.257812, + "peak_rss_kb": 68260, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 966697220, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 7552322.03125, + "peak_rss_kb": 70092, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 959108124, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 7493032.21875, + "peak_rss_kb": 69884, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 959330666, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 7494770.828125, + "peak_rss_kb": 69740, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 962718439, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 7521237.804688, + "peak_rss_kb": 70336, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 954159205, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 7454368.789062, + "peak_rss_kb": 69104, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1093234222, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 17081784.71875, + "peak_rss_kb": 72180, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1061055541, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 16578992.828125, + "peak_rss_kb": 72084, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1094107848, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 17095435.125, + "peak_rss_kb": 72324, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1060645513, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 16572586.140625, + "peak_rss_kb": 72036, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1092295162, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 17067111.90625, + "peak_rss_kb": 72140, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runEchelonSpanCoeffs", + "env": + {"timestamp_unix_ms": 1788229501507, + "timestamp_iso": "2026-09-01T02:25:01Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": + {"params": [16, 24, 32, 48, 64, 96, 128, 192], "kind": "custom"}, + "param_floor": 16, + "param_ceiling": 192, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 2", + "c_min": 453.531603, + "c_max": 467.501868, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.032207, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 117323.89502, + "median_per_call_nanos": 118219.559937, + "max_per_call_nanos": 121131.406006}, + {"relative_spread": 0.010862, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 264204.99585, + "median_per_call_nanos": 265271.843506, + "max_per_call_nanos": 267086.398682}, + {"relative_spread": 0.053574, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 468653.568848, + "median_per_call_nanos": 469094.753906, + "max_per_call_nanos": 493785.030762}, + {"relative_spread": 0.193549, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 1103453.226562, + "median_per_call_nanos": 1291336.876953, + "max_per_call_nanos": 1353390.591797}, + {"relative_spread": 0.270603, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 1990598.910156, + "median_per_call_nanos": 2118327.578125, + "max_per_call_nanos": 2563824.582031}, + {"relative_spread": 0.634241, + "param": 96, + "ok_count": 5, + "min_per_call_nanos": 4424999.226562, + "median_per_call_nanos": 4647724.835938, + "max_per_call_nanos": 7372775.617188}, + {"relative_spread": 0.311749, + "param": 128, + "ok_count": 5, + "min_per_call_nanos": 9823965.015625, + "median_per_call_nanos": 11978712.34375, + "max_per_call_nanos": 13558314.296875}, + {"relative_spread": 0.072619, + "param": 192, + "ok_count": 5, + "min_per_call_nanos": 16683763.34375, + "median_per_call_nanos": 17592892.84375, + "max_per_call_nanos": 17961348.15625}], + "spawn_floor_nanos": 24069037, + "slope": 0.093004, + "ratios": + [[16, 461.795156], + [24, 460.541395], + [32, 458.100346], + [48, 560.476075], + [64, 517.169819], + [96, 504.310421], + [128, 731.12258], + [192, 477.237762]], + "points": + [{"trial_index": 0, + "total_nanos": 981370955, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 119796.259155, + "peak_rss_kb": 67908, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 992308478, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 121131.406006, + "peak_rss_kb": 68368, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 964024976, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 117678.830078, + "peak_rss_kb": 67832, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 961117348, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 117323.89502, + "peak_rss_kb": 68324, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 968454635, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 118219.559937, + "peak_rss_kb": 68428, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1082183663, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 264204.99585, + "peak_rss_kb": 68140, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1086553471, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 265271.843506, + "peak_rss_kb": 68340, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1093985889, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 267086.398682, + "peak_rss_kb": 68408, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1088879602, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 265839.746582, + "peak_rss_kb": 68128, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1083565085, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 264542.25708, + "peak_rss_kb": 68216, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 960706056, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 469094.753906, + "peak_rss_kb": 67816, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 963654628, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 470534.486328, + "peak_rss_kb": 68020, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 959802509, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 468653.568848, + "peak_rss_kb": 66168, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 960037338, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 468768.231445, + "peak_rss_kb": 66472, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1011271743, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 493785.030762, + "peak_rss_kb": 68276, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1244081874, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1214923.705078, + "peak_rss_kb": 62356, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 692935983, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1353390.591797, + "peak_rss_kb": 62948, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 661164481, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1291336.876953, + "peak_rss_kb": 62720, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 669784249, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1308172.361328, + "peak_rss_kb": 62972, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 564968052, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1103453.226562, + "peak_rss_kb": 62804, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1019186642, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1990598.910156, + "peak_rss_kb": 62920, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 542291860, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 2118327.578125, + "peak_rss_kb": 61672, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 590808567, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 2307845.964844, + "peak_rss_kb": 62368, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1060270393, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 2070840.611328, + "peak_rss_kb": 62692, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 656339093, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 2563824.582031, + "peak_rss_kb": 62656, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 943715279, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 7372775.617188, + "peak_rss_kb": 62908, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 647581964, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 5059234.09375, + "peak_rss_kb": 62184, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 594908779, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 4647724.835938, + "peak_rss_kb": 65444, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 566399901, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 4424999.226562, + "peak_rss_kb": 65328, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 575041471, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 4492511.492188, + "peak_rss_kb": 61444, + "part_of_verdict": true, + "param": 96, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 668467607, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 10444806.359375, + "peak_rss_kb": 62972, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 628733761, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 9823965.015625, + "peak_rss_kb": 64352, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 801539474, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 12524054.28125, + "peak_rss_kb": 63336, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 766637590, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 11978712.34375, + "peak_rss_kb": 63024, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 867732115, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 13558314.296875, + "peak_rss_kb": 63644, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 564173361, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 17630417.53125, + "peak_rss_kb": 62948, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 574763141, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 17961348.15625, + "peak_rss_kb": 65712, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1067760854, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 16683763.34375, + "peak_rss_kb": 70248, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1073534587, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 16773977.921875, + "peak_rss_kb": 68768, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 562972571, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 17592892.84375, + "peak_rss_kb": 67640, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runEchelonSpanContains", + "env": + {"timestamp_unix_ms": 1788229564826, + "timestamp_iso": "2026-09-01T02:26:04Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": + {"params": [16, 24, 32, 48, 64, 96, 128, 192], "kind": "custom"}, + "param_floor": 16, + "param_ceiling": 192, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 2", + "c_min": 458.100346, + "c_max": 731.12258, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.039031, + "param": 256, + "ok_count": 5, + "min_per_call_nanos": 1132226.0625, + "median_per_call_nanos": 1156787.472656, + "max_per_call_nanos": 1177377.179688}, + {"relative_spread": 0.032143, + "param": 320, + "ok_count": 5, + "min_per_call_nanos": 1511162.082031, + "median_per_call_nanos": 1535544.042969, + "max_per_call_nanos": 1560519.607422}, + {"relative_spread": 0.023009, + "param": 384, + "ok_count": 5, + "min_per_call_nanos": 2189669.066406, + "median_per_call_nanos": 2200250.03125, + "max_per_call_nanos": 2240294.792969}, + {"relative_spread": 0.027928, + "param": 448, + "ok_count": 7, + "min_per_call_nanos": 2985910.025391, + "median_per_call_nanos": 3003703.101562, + "max_per_call_nanos": 3069797.15625}, + {"relative_spread": 0.074553, + "param": 512, + "ok_count": 7, + "min_per_call_nanos": 4113593.875, + "median_per_call_nanos": 4238503.261719, + "max_per_call_nanos": 4429586.703125}, + {"relative_spread": 0.025724, + "param": 640, + "ok_count": 6, + "min_per_call_nanos": 6148574.914062, + "median_per_call_nanos": 6223767.140625, + "max_per_call_nanos": 6308674.28125}, + {"relative_spread": 0.038196, + "param": 768, + "ok_count": 7, + "min_per_call_nanos": 9090734.171875, + "median_per_call_nanos": 9193175.445312, + "max_per_call_nanos": 9441878.960938}], + "spawn_floor_nanos": 26803862, + "slope": null, + "ratios": + [[256, 17.651176], + [320, 14.995547], + [384, 14.9214], + [448, 14.965836], + [512, 16.168607], + [640, 15.194744], + [768, 15.586303]], + "points": + [{"trial_index": 0, + "total_nanos": 36787371, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1149605.34375, + "peak_rss_kb": 73440, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 32, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 296137593, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1156787.472656, + "peak_rss_kb": 72764, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1199688727, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1171571.022461, + "peak_rss_kb": 71628, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 301408558, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1177377.179688, + "peak_rss_kb": 71648, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1173240724, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1145742.894531, + "peak_rss_kb": 70860, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 152236776, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1189349.8125, + "peak_rss_kb": 68796, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 128, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1159399488, + "status": "ok", + "result_hash": "0x9c6d4eb1deb32b94", + "per_call_nanos": 1132226.0625, + "peak_rss_kb": 75416, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 386857493, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1511162.082031, + "peak_rss_kb": 80252, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 786198550, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1535544.042969, + "peak_rss_kb": 78336, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1567442068, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1530705.144531, + "peak_rss_kb": 80592, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 393559859, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1537343.199219, + "peak_rss_kb": 78280, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 50044734, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1563897.9375, + "peak_rss_kb": 77040, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 32, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 200342916, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1565179.03125, + "peak_rss_kb": 76732, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 128, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1597972078, + "status": "ok", + "result_hash": "0xdcd1673a06e245e1", + "per_call_nanos": 1560519.607422, + "peak_rss_kb": 76504, + "part_of_verdict": true, + "param": 320, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 281632004, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2200250.03125, + "peak_rss_kb": 80796, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1125640083, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2198515.787109, + "peak_rss_kb": 81532, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 573515467, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2240294.792969, + "peak_rss_kb": 80604, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1121110562, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2189669.066406, + "peak_rss_kb": 79844, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 142296783, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2223387.234375, + "peak_rss_kb": 78448, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 64, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 285561481, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2230949.070312, + "peak_rss_kb": 76176, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 140952921, + "status": "ok", + "result_hash": "0x1962b6e2e1c7f0e0", + "per_call_nanos": 2202389.390625, + "peak_rss_kb": 76608, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 64, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 772505641, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 3017600.160156, + "peak_rss_kb": 81468, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1536585534, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 3001143.621094, + "peak_rss_kb": 81152, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1537895988, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 3003703.101562, + "peak_rss_kb": 81328, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 392934036, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 3069797.15625, + "peak_rss_kb": 81564, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1559312329, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 3045531.892578, + "peak_rss_kb": 81224, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1529295867, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 2986905.990234, + "peak_rss_kb": 86624, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1528785933, + "status": "ok", + "result_hash": "0xcfbba048ed8571a7", + "per_call_nanos": 2985910.025391, + "peak_rss_kb": 86420, + "part_of_verdict": true, + "param": 448, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 557593682, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4356200.640625, + "peak_rss_kb": 98024, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 283493549, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4429586.703125, + "peak_rss_kb": 96320, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1079372826, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4216300.101562, + "peak_rss_kb": 94316, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1053080032, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4113593.875, + "peak_rss_kb": 93780, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1085056835, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4238503.261719, + "peak_rss_kb": 93616, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1105487932, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4318312.234375, + "peak_rss_kb": 92508, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1065370275, + "status": "ok", + "result_hash": "0xc51abeaa313bb1b4", + "per_call_nanos": 4161602.636719, + "peak_rss_kb": 93032, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 795626428, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6215831.46875, + "peak_rss_kb": 103980, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 789357255, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6166853.554688, + "peak_rss_kb": 104012, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1598042033, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6242351.691406, + "peak_rss_kb": 106116, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 398828980, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6231702.8125, + "peak_rss_kb": 105868, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 98524940, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6157808.75, + "peak_rss_kb": 106788, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 16, + "error": null, + "below_signal_floor": true, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 787017589, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6148574.914062, + "peak_rss_kb": 105160, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 403755154, + "status": "ok", + "result_hash": "0x9dfb18e393236a0c", + "per_call_nanos": 6308674.28125, + "peak_rss_kb": 105168, + "part_of_verdict": true, + "param": 640, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1196861511, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9350480.554688, + "peak_rss_kb": 122444, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 296517188, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9266162.125, + "peak_rss_kb": 121244, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1208560507, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9441878.960938, + "peak_rss_kb": 118068, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1176726457, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9193175.445312, + "peak_rss_kb": 121344, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1168689335, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9130385.429688, + "peak_rss_kb": 122184, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1171040201, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9148751.570312, + "peak_rss_kb": 121204, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1163613974, + "status": "ok", + "result_hash": "0x84317c79ea54c73d", + "per_call_nanos": 9090734.171875, + "peak_rss_kb": 123440, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runReducedNullspace", + "env": + {"timestamp_unix_ms": 1788229628736, + "timestamp_iso": "2026-09-01T02:27:08Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 2000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": + {"params": [256, 320, 384, 448, 512, 640, 768], "kind": "custom"}, + "param_floor": 256, + "param_ceiling": 768, + "outer_trials": 7, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 2", + "c_min": 14.9214, + "c_max": 16.168607, + "budget_truncated": false, + "advisories": ["partially_below_signal_floor"]}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.018178, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 84802.57605, + "median_per_call_nanos": 85566.753296, + "max_per_call_nanos": 86357.979858}, + {"relative_spread": 0.029239, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 279029.879395, + "median_per_call_nanos": 280538.047363, + "max_per_call_nanos": 287232.453125}, + {"relative_spread": 0.016261, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 650087.99707, + "median_per_call_nanos": 653264.982422, + "max_per_call_nanos": 660711.020508}, + {"relative_spread": 0.012508, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 2162388.472656, + "median_per_call_nanos": 2186254.820312, + "max_per_call_nanos": 2189735.105469}, + {"relative_spread": 0.010622, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 5091408.625, + "median_per_call_nanos": 5122466.078125, + "max_per_call_nanos": 5145817.960938}, + {"relative_spread": 0.013826, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 17052257.28125, + "median_per_call_nanos": 17193128.25, + "max_per_call_nanos": 17289968.375}, + {"relative_spread": 0.011321, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 40384735.0625, + "median_per_call_nanos": 40702720.6875, + "max_per_call_nanos": 40845540.625}], + "spawn_floor_nanos": 23178079, + "slope": -0.025917, + "ratios": + [[8, 167.122565], + [12, 162.348407], + [16, 159.488521], + [24, 158.14922], + [32, 156.325259], + [48, 155.464484], + [64, 155.268557]], + "points": + [{"trial_index": 0, + "total_nanos": 707444571, + "status": "ok", + "result_hash": "0x7580b0481776f6d7", + "per_call_nanos": 86357.979858, + "peak_rss_kb": 68080, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 697861074, + "status": "ok", + "result_hash": "0x7580b0481776f6d7", + "per_call_nanos": 85188.119385, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 700962843, + "status": "ok", + "result_hash": "0x7580b0481776f6d7", + "per_call_nanos": 85566.753296, + "peak_rss_kb": 67864, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 694702703, + "status": "ok", + "result_hash": "0x7580b0481776f6d7", + "per_call_nanos": 84802.57605, + "peak_rss_kb": 68076, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 701452369, + "status": "ok", + "result_hash": "0x7580b0481776f6d7", + "per_call_nanos": 85626.509888, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 588252064, + "status": "ok", + "result_hash": "0xe7e5453351f948df", + "per_call_nanos": 287232.453125, + "peak_rss_kb": 67892, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 575246705, + "status": "ok", + "result_hash": "0xe7e5453351f948df", + "per_call_nanos": 280882.180176, + "peak_rss_kb": 68580, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 571453193, + "status": "ok", + "result_hash": "0xe7e5453351f948df", + "per_call_nanos": 279029.879395, + "peak_rss_kb": 67984, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 574541921, + "status": "ok", + "result_hash": "0xe7e5453351f948df", + "per_call_nanos": 280538.047363, + "peak_rss_kb": 68320, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 573991496, + "status": "ok", + "result_hash": "0xe7e5453351f948df", + "per_call_nanos": 280269.285156, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 665690109, + "status": "ok", + "result_hash": "0x4e2c8f87de76c3a7", + "per_call_nanos": 650087.99707, + "peak_rss_kb": 68288, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 676568085, + "status": "ok", + "result_hash": "0x4e2c8f87de76c3a7", + "per_call_nanos": 660711.020508, + "peak_rss_kb": 68316, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 672108384, + "status": "ok", + "result_hash": "0x4e2c8f87de76c3a7", + "per_call_nanos": 656355.84375, + "peak_rss_kb": 68048, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 668943342, + "status": "ok", + "result_hash": "0x4e2c8f87de76c3a7", + "per_call_nanos": 653264.982422, + "peak_rss_kb": 68124, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 668102897, + "status": "ok", + "result_hash": "0x4e2c8f87de76c3a7", + "per_call_nanos": 652444.235352, + "peak_rss_kb": 68292, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 559681234, + "status": "ok", + "result_hash": "0xffad94f8633f2b37", + "per_call_nanos": 2186254.820312, + "peak_rss_kb": 67984, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 560201075, + "status": "ok", + "result_hash": "0xffad94f8633f2b37", + "per_call_nanos": 2188285.449219, + "peak_rss_kb": 68420, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 554980116, + "status": "ok", + "result_hash": "0xffad94f8633f2b37", + "per_call_nanos": 2167891.078125, + "peak_rss_kb": 68076, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 553571449, + "status": "ok", + "result_hash": "0xffad94f8633f2b37", + "per_call_nanos": 2162388.472656, + "peak_rss_kb": 68388, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 560572187, + "status": "ok", + "result_hash": "0xffad94f8633f2b37", + "per_call_nanos": 2189735.105469, + "peak_rss_kb": 68160, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 651700304, + "status": "ok", + "result_hash": "0x2b3b2720a13f3247", + "per_call_nanos": 5091408.625, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 658664699, + "status": "ok", + "result_hash": "0x2b3b2720a13f3247", + "per_call_nanos": 5145817.960938, + "peak_rss_kb": 68192, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 652890079, + "status": "ok", + "result_hash": "0x2b3b2720a13f3247", + "per_call_nanos": 5100703.742188, + "peak_rss_kb": 68248, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 655675658, + "status": "ok", + "result_hash": "0x2b3b2720a13f3247", + "per_call_nanos": 5122466.078125, + "peak_rss_kb": 68456, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 656185364, + "status": "ok", + "result_hash": "0x2b3b2720a13f3247", + "per_call_nanos": 5126448.15625, + "peak_rss_kb": 67864, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1092186831, + "status": "ok", + "result_hash": "0xa160237d0e9bd9e7", + "per_call_nanos": 17065419.234375, + "peak_rss_kb": 67200, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 553278988, + "status": "ok", + "result_hash": "0xa160237d0e9bd9e7", + "per_call_nanos": 17289968.375, + "peak_rss_kb": 68584, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 550180104, + "status": "ok", + "result_hash": "0xa160237d0e9bd9e7", + "per_call_nanos": 17193128.25, + "peak_rss_kb": 67812, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 551731815, + "status": "ok", + "result_hash": "0xa160237d0e9bd9e7", + "per_call_nanos": 17241619.21875, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1091344466, + "status": "ok", + "result_hash": "0xa160237d0e9bd9e7", + "per_call_nanos": 17052257.28125, + "peak_rss_kb": 68208, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 651243531, + "status": "ok", + "result_hash": "0xdbb3940a7ab97687", + "per_call_nanos": 40702720.6875, + "peak_rss_kb": 67904, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 649392428, + "status": "ok", + "result_hash": "0xdbb3940a7ab97687", + "per_call_nanos": 40587026.75, + "peak_rss_kb": 68384, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 653528650, + "status": "ok", + "result_hash": "0xdbb3940a7ab97687", + "per_call_nanos": 40845540.625, + "peak_rss_kb": 68424, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 652240991, + "status": "ok", + "result_hash": "0xdbb3940a7ab97687", + "per_call_nanos": 40765061.9375, + "peak_rss_kb": 68392, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 646155761, + "status": "ok", + "result_hash": "0xdbb3940a7ab97687", + "per_call_nanos": 40384735.0625, + "peak_rss_kb": 68444, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runNullspaceMatrix", + "env": + {"timestamp_unix_ms": 1788229675720, + "timestamp_iso": "2026-09-01T02:27:55Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 155.268557, + "c_max": 162.348407, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.024718, + "param": 128, + "ok_count": 7, + "min_per_call_nanos": 1535.190648, + "median_per_call_nanos": 1550.866308, + "max_per_call_nanos": 1573.524464}, + {"relative_spread": 0.044218, + "param": 192, + "ok_count": 7, + "min_per_call_nanos": 2268.538239, + "median_per_call_nanos": 2299.062206, + "max_per_call_nanos": 2370.198954}, + {"relative_spread": 0.048935, + "param": 256, + "ok_count": 7, + "min_per_call_nanos": 2968.413019, + "median_per_call_nanos": 3022.694914, + "max_per_call_nanos": 3116.328394}, + {"relative_spread": 0.033926, + "param": 384, + "ok_count": 7, + "min_per_call_nanos": 4533.639343, + "median_per_call_nanos": 4582.452488, + "max_per_call_nanos": 4689.104992}, + {"relative_spread": 0.038581, + "param": 512, + "ok_count": 7, + "min_per_call_nanos": 5886.601337, + "median_per_call_nanos": 5932.212151, + "max_per_call_nanos": 6115.471184}], + "spawn_floor_nanos": 22524210, + "slope": null, + "ratios": + [[128, 12.116143], + [192, 11.974282], + [256, 11.807402], + [384, 11.93347], + [512, 11.586352]], + "points": + [{"trial_index": 0, + "total_nanos": 1617769063, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1542.824805, + "peak_rss_kb": 70188, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1636892704, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1561.062531, + "peak_rss_kb": 70076, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1626097995, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1550.767894, + "peak_rss_kb": 69728, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1626201190, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1550.866308, + "peak_rss_kb": 70280, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1626232278, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1550.895956, + "peak_rss_kb": 70196, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1609764069, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1535.190648, + "peak_rss_kb": 70112, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1649959988, + "status": "ok", + "result_hash": "0xb064646f5f91604d", + "per_call_nanos": 1573.524464, + "peak_rss_kb": 70000, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 1048576, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1205370726, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2299.062206, + "peak_rss_kb": 69852, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1236805206, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2359.018719, + "peak_rss_kb": 72072, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1192816007, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2275.11598, + "peak_rss_kb": 71456, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1189367376, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2268.538239, + "peak_rss_kb": 69684, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1242666869, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2370.198954, + "peak_rss_kb": 69688, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1202988401, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2294.518282, + "peak_rss_kb": 69540, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1237416149, + "status": "ok", + "result_hash": "0x77aac10cdfd0d344", + "per_call_nanos": 2360.184, + "peak_rss_kb": 68896, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1556303325, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 2968.413019, + "peak_rss_kb": 71388, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1589120997, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 3031.007761, + "peak_rss_kb": 71284, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1580784910, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 3015.107937, + "peak_rss_kb": 71032, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1584762671, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 3022.694914, + "peak_rss_kb": 71316, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1562197121, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 2979.654543, + "peak_rss_kb": 71396, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1589004163, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 3030.784918, + "peak_rss_kb": 71480, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1633853581, + "status": "ok", + "result_hash": "0x51b25dc04eb5f295", + "per_call_nanos": 3116.328394, + "peak_rss_kb": 70984, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 524288, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1195544090, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4560.638771, + "peak_rss_kb": 77672, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1206084608, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4600.847656, + "peak_rss_kb": 76872, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1192802698, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4550.18119, + "peak_rss_kb": 76804, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1188466352, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4533.639343, + "peak_rss_kb": 76684, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1229220739, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4689.104992, + "peak_rss_kb": 76604, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1201262425, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4582.452488, + "peak_rss_kb": 76096, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1212040363, + "status": "ok", + "result_hash": "0xfa944deda3d8305a", + "per_call_nanos": 4623.567059, + "peak_rss_kb": 75624, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1543312986, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 5887.271828, + "peak_rss_kb": 85312, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1555093822, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 5932.212151, + "peak_rss_kb": 84524, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1555034005, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 5931.983967, + "peak_rss_kb": 84520, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1543137221, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 5886.601337, + "peak_rss_kb": 84516, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1573562447, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 6002.664364, + "peak_rss_kb": 84440, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1603134078, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 6115.471184, + "peak_rss_kb": 84376, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1585011764, + "status": "ok", + "result_hash": "0x67762b97afe5e44c", + "per_call_nanos": 6046.340042, + "peak_rss_kb": 84380, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 262144, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runFreeCols", + "env": + {"timestamp_unix_ms": 1788229699875, + "timestamp_iso": "2026-09-01T02:28:19Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 2000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [128, 192, 256, 384, 512], "kind": "custom"}, + "param_floor": 128, + "param_ceiling": 512, + "outer_trials": 7, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n", + "c_min": 11.586352, + "c_max": 11.974282, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.014171, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 249376.093994, + "median_per_call_nanos": 251262.647949, + "max_per_call_nanos": 252936.706543}, + {"relative_spread": 0.005615, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 804627.6875, + "median_per_call_nanos": 805365.84082, + "max_per_call_nanos": 809149.985352}, + {"relative_spread": 0.011718, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 1857524.166016, + "median_per_call_nanos": 1864641.572266, + "max_per_call_nanos": 1879374.121094}, + {"relative_spread": 0.03097, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 6086838.039062, + "median_per_call_nanos": 6133264.429688, + "max_per_call_nanos": 6276782.648438}, + {"relative_spread": 0.041021, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 14279493.96875, + "median_per_call_nanos": 14365320.625, + "max_per_call_nanos": 14868776.015625}, + {"relative_spread": 0.009877, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 47504925.1875, + "median_per_call_nanos": 47576772.9375, + "max_per_call_nanos": 47974817.3125}, + {"relative_spread": 0.005631, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 111601976.875, + "median_per_call_nanos": 111851538.25, + "max_per_call_nanos": 112231831.625}], + "spawn_floor_nanos": 30264155, + "slope": -0.052149, + "ratios": + [[8, 490.747359], + [12, 466.068195], + [16, 455.234759], + [24, 443.667855], + [32, 438.394794], + [48, 430.200855], + [64, 426.679757]], + "points": + [{"trial_index": 0, + "total_nanos": 1029955305, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 251453.931885, + "peak_rss_kb": 62648, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1027142055, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 250767.103271, + "peak_rss_kb": 63764, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1036028750, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 252936.706543, + "peak_rss_kb": 64264, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1029171806, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 251262.647949, + "peak_rss_kb": 63852, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1021444481, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 249376.093994, + "peak_rss_kb": 63996, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 824090935, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 804776.303711, + "peak_rss_kb": 64280, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 828569585, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 809149.985352, + "peak_rss_kb": 64320, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 827380222, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 807988.498047, + "peak_rss_kb": 64376, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 824694621, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 805365.84082, + "peak_rss_kb": 64028, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 823938752, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 804627.6875, + "peak_rss_kb": 63892, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 951052373, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1857524.166016, + "peak_rss_kb": 63924, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 954696485, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1864641.572266, + "peak_rss_kb": 68128, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 951388202, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1858180.082031, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 957295049, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1869716.892578, + "peak_rss_kb": 68064, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 962239550, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 1879374.121094, + "peak_rss_kb": 68324, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 803428179, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 6276782.648438, + "peak_rss_kb": 67848, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 785057847, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 6133264.429688, + "peak_rss_kb": 68316, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 790621114, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 6176727.453125, + "peak_rss_kb": 67888, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 779115269, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 6086838.039062, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 784006610, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 6125051.640625, + "peak_rss_kb": 68248, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 913887614, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 14279493.96875, + "peak_rss_kb": 68160, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 921841517, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 14403773.703125, + "peak_rss_kb": 68016, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 951601665, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 14868776.015625, + "peak_rss_kb": 68080, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 919380520, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 14365320.625, + "peak_rss_kb": 68580, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 913923411, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 14280053.296875, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 767597077, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 47974817.3125, + "peak_rss_kb": 68196, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 764729656, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 47795603.5, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 761228367, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 47576772.9375, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 760078803, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 47504925.1875, + "peak_rss_kb": 68268, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 761223411, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 47576463.1875, + "peak_rss_kb": 67916, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 894411138, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 111801392.25, + "peak_rss_kb": 68208, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 897854653, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 112231831.625, + "peak_rss_kb": 68076, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 896428159, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 112053519.875, + "peak_rss_kb": 67788, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 892815815, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 111601976.875, + "peak_rss_kb": 68128, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 894812306, + "status": "ok", + "result_hash": "0xb", + "per_call_nanos": 111851538.25, + "peak_rss_kb": 68272, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runSpanContains", + "env": + {"timestamp_unix_ms": 1788229752798, + "timestamp_iso": "2026-09-01T02:29:12Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 426.679757, + "c_max": 466.068195, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.032535, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 219299.375977, + "median_per_call_nanos": 220380.316895, + "max_per_call_nanos": 226469.443604}, + {"relative_spread": 0.001628, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 739108.799805, + "median_per_call_nanos": 739913.506836, + "max_per_call_nanos": 740313.348633}, + {"relative_spread": 0.019497, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 1746094.509766, + "median_per_call_nanos": 1759468.261719, + "max_per_call_nanos": 1780398.060547}, + {"relative_spread": 0.011191, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 5872963.773438, + "median_per_call_nanos": 5909781.632812, + "max_per_call_nanos": 5939102.210938}, + {"relative_spread": 0.008747, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 13815189.78125, + "median_per_call_nanos": 13886302.6875, + "max_per_call_nanos": 13936647.953125}, + {"relative_spread": 0.033486, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 46250263.0625, + "median_per_call_nanos": 46776799.25, + "max_per_call_nanos": 47816621.5625}, + {"relative_spread": 0.018209, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 110043271.125, + "median_per_call_nanos": 111205326.375, + "max_per_call_nanos": 112068211.625}], + "spawn_floor_nanos": 23540958, + "slope": -0.008583, + "ratios": + [[8, 430.430306], + [12, 428.190687], + [16, 429.557681], + [24, 427.501565], + [32, 423.776327], + [48, 422.967296], + [64, 424.214654]], + "points": + [{"trial_index": 0, + "total_nanos": 927618841, + "status": "ok", + "result_hash": "0x8dd16324c890a087", + "per_call_nanos": 226469.443604, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 902677778, + "status": "ok", + "result_hash": "0x8dd16324c890a087", + "per_call_nanos": 220380.316895, + "peak_rss_kb": 68292, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 898250244, + "status": "ok", + "result_hash": "0x8dd16324c890a087", + "per_call_nanos": 219299.375977, + "peak_rss_kb": 68084, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 905760969, + "status": "ok", + "result_hash": "0x8dd16324c890a087", + "per_call_nanos": 221133.049072, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 902361911, + "status": "ok", + "result_hash": "0x8dd16324c890a087", + "per_call_nanos": 220303.200928, + "peak_rss_kb": 68336, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 757671431, + "status": "ok", + "result_hash": "0x83aaf6087330e6e5", + "per_call_nanos": 739913.506836, + "peak_rss_kb": 68356, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 757219892, + "status": "ok", + "result_hash": "0x83aaf6087330e6e5", + "per_call_nanos": 739472.550781, + "peak_rss_kb": 67900, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 758080869, + "status": "ok", + "result_hash": "0x83aaf6087330e6e5", + "per_call_nanos": 740313.348633, + "peak_rss_kb": 68364, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 756847411, + "status": "ok", + "result_hash": "0x83aaf6087330e6e5", + "per_call_nanos": 739108.799805, + "peak_rss_kb": 68460, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 758067831, + "status": "ok", + "result_hash": "0x83aaf6087330e6e5", + "per_call_nanos": 740300.616211, + "peak_rss_kb": 68440, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 894000389, + "status": "ok", + "result_hash": "0xfbb343d5769cc58a", + "per_call_nanos": 1746094.509766, + "peak_rss_kb": 68092, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 900847750, + "status": "ok", + "result_hash": "0xfbb343d5769cc58a", + "per_call_nanos": 1759468.261719, + "peak_rss_kb": 68584, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 911563807, + "status": "ok", + "result_hash": "0xfbb343d5769cc58a", + "per_call_nanos": 1780398.060547, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 905308354, + "status": "ok", + "result_hash": "0xfbb343d5769cc58a", + "per_call_nanos": 1768180.378906, + "peak_rss_kb": 67992, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 898865934, + "status": "ok", + "result_hash": "0xfbb343d5769cc58a", + "per_call_nanos": 1755597.527344, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 752007329, + "status": "ok", + "result_hash": "0xcf117583bcce8037", + "per_call_nanos": 5875057.257812, + "peak_rss_kb": 68404, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 760205083, + "status": "ok", + "result_hash": "0xcf117583bcce8037", + "per_call_nanos": 5939102.210938, + "peak_rss_kb": 68152, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 756452049, + "status": "ok", + "result_hash": "0xcf117583bcce8037", + "per_call_nanos": 5909781.632812, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 758101976, + "status": "ok", + "result_hash": "0xcf117583bcce8037", + "per_call_nanos": 5922671.6875, + "peak_rss_kb": 68288, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 751739363, + "status": "ok", + "result_hash": "0xcf117583bcce8037", + "per_call_nanos": 5872963.773438, + "peak_rss_kb": 68312, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 889732687, + "status": "ok", + "result_hash": "0x91727b1d6fcaaa2", + "per_call_nanos": 13902073.234375, + "peak_rss_kb": 67908, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 888723372, + "status": "ok", + "result_hash": "0x91727b1d6fcaaa2", + "per_call_nanos": 13886302.6875, + "peak_rss_kb": 68448, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 891945469, + "status": "ok", + "result_hash": "0x91727b1d6fcaaa2", + "per_call_nanos": 13936647.953125, + "peak_rss_kb": 68160, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 884172146, + "status": "ok", + "result_hash": "0x91727b1d6fcaaa2", + "per_call_nanos": 13815189.78125, + "peak_rss_kb": 67976, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 887526920, + "status": "ok", + "result_hash": "0x91727b1d6fcaaa2", + "per_call_nanos": 13867608.125, + "peak_rss_kb": 68304, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 748428788, + "status": "ok", + "result_hash": "0x2eb27e4723a69417", + "per_call_nanos": 46776799.25, + "peak_rss_kb": 68428, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 740004209, + "status": "ok", + "result_hash": "0x2eb27e4723a69417", + "per_call_nanos": 46250263.0625, + "peak_rss_kb": 68056, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 742829098, + "status": "ok", + "result_hash": "0x2eb27e4723a69417", + "per_call_nanos": 46426818.625, + "peak_rss_kb": 68584, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 750391439, + "status": "ok", + "result_hash": "0x2eb27e4723a69417", + "per_call_nanos": 46899464.9375, + "peak_rss_kb": 68136, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 765065945, + "status": "ok", + "result_hash": "0x2eb27e4723a69417", + "per_call_nanos": 47816621.5625, + "peak_rss_kb": 68396, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 896545693, + "status": "ok", + "result_hash": "0x86fbf40ff2c9d2e5", + "per_call_nanos": 112068211.625, + "peak_rss_kb": 68400, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 889642611, + "status": "ok", + "result_hash": "0x86fbf40ff2c9d2e5", + "per_call_nanos": 111205326.375, + "peak_rss_kb": 68244, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 880346169, + "status": "ok", + "result_hash": "0x86fbf40ff2c9d2e5", + "per_call_nanos": 110043271.125, + "peak_rss_kb": 68176, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 881155730, + "status": "ok", + "result_hash": "0x86fbf40ff2c9d2e5", + "per_call_nanos": 110144466.25, + "peak_rss_kb": 68524, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 889813185, + "status": "ok", + "result_hash": "0x86fbf40ff2c9d2e5", + "per_call_nanos": 111226648.125, + "peak_rss_kb": 68252, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runReduce", + "env": + {"timestamp_unix_ms": 1788229785758, + "timestamp_iso": "2026-09-01T02:29:45Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 422.967296, + "c_max": 429.557681, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.008955, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 249596.574463, + "median_per_call_nanos": 250873.678223, + "max_per_call_nanos": 251843.19873}, + {"relative_spread": 0.025227, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 798157.450195, + "median_per_call_nanos": 804129.476562, + "max_per_call_nanos": 818443.09082}, + {"relative_spread": 0.03857, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 1858626.164062, + "median_per_call_nanos": 1869371.898438, + "max_per_call_nanos": 1930728.273438}, + {"relative_spread": 0.043931, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 6112645.335938, + "median_per_call_nanos": 6257334.90625, + "max_per_call_nanos": 6387536.296875}, + {"relative_spread": 0.036264, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 14293430.828125, + "median_per_call_nanos": 14351390.8125, + "max_per_call_nanos": 14813873.140625}, + {"relative_spread": 0.025831, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 47510978.875, + "median_per_call_nanos": 47898655.4375, + "max_per_call_nanos": 48748258.1875}, + {"relative_spread": 0.020342, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 111370105.75, + "median_per_call_nanos": 111859135.875, + "max_per_call_nanos": 113645504}], + "spawn_floor_nanos": 23235867, + "slope": -0.051838, + "ratios": + [[8, 489.987653], + [12, 465.352706], + [16, 456.389624], + [24, 452.642861], + [32, 437.96969], + [48, 433.111395], + [64, 426.70874]], + "points": + [{"trial_index": 0, + "total_nanos": 1030709685, + "status": "ok", + "result_hash": "0xf7029db604d51a14", + "per_call_nanos": 251638.106689, + "peak_rss_kb": 68100, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1022347569, + "status": "ok", + "result_hash": "0xf7029db604d51a14", + "per_call_nanos": 249596.574463, + "peak_rss_kb": 67848, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1031549742, + "status": "ok", + "result_hash": "0xf7029db604d51a14", + "per_call_nanos": 251843.19873, + "peak_rss_kb": 67936, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1027578586, + "status": "ok", + "result_hash": "0xf7029db604d51a14", + "per_call_nanos": 250873.678223, + "peak_rss_kb": 68144, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1025508187, + "status": "ok", + "result_hash": "0xf7029db604d51a14", + "per_call_nanos": 250368.209717, + "peak_rss_kb": 68508, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 820812145, + "status": "ok", + "result_hash": "0xb99c6d7a8bfa7ccc", + "per_call_nanos": 801574.360352, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 823428584, + "status": "ok", + "result_hash": "0xb99c6d7a8bfa7ccc", + "per_call_nanos": 804129.476562, + "peak_rss_kb": 67960, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 817313229, + "status": "ok", + "result_hash": "0xb99c6d7a8bfa7ccc", + "per_call_nanos": 798157.450195, + "peak_rss_kb": 68192, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 826001541, + "status": "ok", + "result_hash": "0xb99c6d7a8bfa7ccc", + "per_call_nanos": 806642.129883, + "peak_rss_kb": 68316, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 838085725, + "status": "ok", + "result_hash": "0xb99c6d7a8bfa7ccc", + "per_call_nanos": 818443.09082, + "peak_rss_kb": 68300, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 957118412, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 1869371.898438, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 951616596, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 1858626.164062, + "peak_rss_kb": 68076, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 953539037, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 1862380.931641, + "peak_rss_kb": 68348, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 988532876, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 1930728.273438, + "peak_rss_kb": 68188, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 957602944, + "status": "ok", + "result_hash": "0x3d4ddfeac7557284", + "per_call_nanos": 1870318.25, + "peak_rss_kb": 68436, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 800938868, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 6257334.90625, + "peak_rss_kb": 68580, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 817604646, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 6387536.296875, + "peak_rss_kb": 68440, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 782418603, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 6112645.335938, + "peak_rss_kb": 68364, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 807669498, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 6309917.953125, + "peak_rss_kb": 68440, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 791895233, + "status": "ok", + "result_hash": "0x6445e860d3e6abb4", + "per_call_nanos": 6186681.507812, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 948087881, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 14813873.140625, + "peak_rss_kb": 68356, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 929206860, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 14518857.1875, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 918489012, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 14351390.8125, + "peak_rss_kb": 68140, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 914779573, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 14293430.828125, + "peak_rss_kb": 67848, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 915865464, + "status": "ok", + "result_hash": "0x9ff874657ef86324", + "per_call_nanos": 14310397.875, + "peak_rss_kb": 68592, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 766378487, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 47898655.4375, + "peak_rss_kb": 67960, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 760175662, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 47510978.875, + "peak_rss_kb": 67852, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 779972131, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 48748258.1875, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 766819262, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 47926203.875, + "peak_rss_kb": 68184, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 761679072, + "status": "ok", + "result_hash": "0xd8c9b6f31f9602c4", + "per_call_nanos": 47604942, + "peak_rss_kb": 68204, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 909164032, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 113645504, + "peak_rss_kb": 68028, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 904904537, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 113113067.125, + "peak_rss_kb": 68048, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 890960846, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 111370105.75, + "peak_rss_kb": 67884, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 894873087, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 111859135.875, + "peak_rss_kb": 68260, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 892768888, + "status": "ok", + "result_hash": "0xb90d7b05d22eb864", + "per_call_nanos": 111596111, + "peak_rss_kb": 67752, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 8, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runSpanCoeffs", + "env": + {"timestamp_unix_ms": 1788229816851, + "timestamp_iso": "2026-09-01T02:30:16Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 426.70874, + "c_max": 465.352706, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.01137, + "param": 128, + "ok_count": 7, + "min_per_call_nanos": 8983.402618, + "median_per_call_nanos": 9022.33326, + "max_per_call_nanos": 9085.985603}, + {"relative_spread": 0.026396, + "param": 192, + "ok_count": 7, + "min_per_call_nanos": 13315.564384, + "median_per_call_nanos": 13462.893883, + "max_per_call_nanos": 13670.928215}, + {"relative_spread": 0.032703, + "param": 256, + "ok_count": 7, + "min_per_call_nanos": 17586.999557, + "median_per_call_nanos": 17953.106171, + "max_per_call_nanos": 18174.119751}, + {"relative_spread": 0.035595, + "param": 384, + "ok_count": 7, + "min_per_call_nanos": 26471.685104, + "median_per_call_nanos": 26731.759109, + "max_per_call_nanos": 27423.206467}, + {"relative_spread": 0.078632, + "param": 512, + "ok_count": 7, + "min_per_call_nanos": 34999.301361, + "median_per_call_nanos": 35804.614136, + "max_per_call_nanos": 37814.707001}], + "spawn_floor_nanos": 23278541, + "slope": null, + "ratios": + [[128, 70.486979], + [192, 70.119239], + [256, 70.129321], + [384, 69.613956], + [512, 69.930887]], + "points": + [{"trial_index": 0, + "total_nanos": 1177472548, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 8983.402618, + "peak_rss_kb": 70240, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1180967960, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9010.070496, + "peak_rss_kb": 70508, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1182575265, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9022.33326, + "peak_rss_kb": 70360, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1182924944, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9025.001099, + "peak_rss_kb": 69732, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1190918305, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9085.985603, + "peak_rss_kb": 69908, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1180731585, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9008.267097, + "peak_rss_kb": 69828, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1183892501, + "status": "ok", + "result_hash": "0x585a2447d23193e4", + "per_call_nanos": 9032.382973, + "peak_rss_kb": 70256, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1748467711, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13339.749992, + "peak_rss_kb": 71860, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1770550601, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13508.229073, + "peak_rss_kb": 72212, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1745297655, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13315.564384, + "peak_rss_kb": 72136, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1764608427, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13462.893883, + "peak_rss_kb": 72140, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1791875903, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13670.928215, + "peak_rss_kb": 71932, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1761311412, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13437.739655, + "peak_rss_kb": 72188, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1780007472, + "status": "ok", + "result_hash": "0xdfd81e8422ecaf64", + "per_call_nanos": 13580.379272, + "peak_rss_kb": 72236, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 131072, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1152581603, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 17586.999557, + "peak_rss_kb": 71724, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1179408466, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 17996.345001, + "peak_rss_kb": 72060, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1173221865, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 17901.944962, + "peak_rss_kb": 72056, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1176574766, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 17953.106171, + "peak_rss_kb": 71448, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1181099616, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 18022.149902, + "peak_rss_kb": 71720, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1191059112, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 18174.119751, + "peak_rss_kb": 71876, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1169432951, + "status": "ok", + "result_hash": "0xec95a143dd78cae4", + "per_call_nanos": 17844.130722, + "peak_rss_kb": 71652, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1761644280, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 26880.558472, + "peak_rss_kb": 79280, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1751892565, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 26731.759109, + "peak_rss_kb": 80212, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1797207259, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 27423.206467, + "peak_rss_kb": 80256, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1751656059, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 26728.150314, + "peak_rss_kb": 79504, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1772367026, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 27044.174591, + "peak_rss_kb": 79452, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1734848355, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 26471.685104, + "peak_rss_kb": 79584, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1750398580, + "status": "ok", + "result_hash": "0x862b6ce437f881e4", + "per_call_nanos": 26708.962708, + "peak_rss_kb": 80204, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 65536, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1161808128, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 35455.570312, + "peak_rss_kb": 87748, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1173245596, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 35804.614136, + "peak_rss_kb": 87576, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1176250581, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 35896.319, + "peak_rss_kb": 87688, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1161385444, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 35442.671021, + "peak_rss_kb": 88436, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1196684187, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 36519.903168, + "peak_rss_kb": 88412, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1239112319, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 37814.707001, + "peak_rss_kb": 88380, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1146857107, + "status": "ok", + "result_hash": "0xbdcf04ae775718e4", + "per_call_nanos": 34999.301361, + "peak_rss_kb": 87644, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 32768, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runEchelonCoeffs", + "env": + {"timestamp_unix_ms": 1788229849742, + "timestamp_iso": "2026-09-01T02:30:49Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 2000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [128, 192, 256, 384, 512], "kind": "custom"}, + "param_floor": 128, + "param_ceiling": 512, + "outer_trials": 7, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n", + "c_min": 69.613956, + "c_max": 70.129321, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.041699, + "param": 128, + "ok_count": 7, + "min_per_call_nanos": 238597.505249, + "median_per_call_nanos": 242613.632446, + "max_per_call_nanos": 248714.357666}, + {"relative_spread": 0.041123, + "param": 192, + "ok_count": 7, + "min_per_call_nanos": 534479.870117, + "median_per_call_nanos": 549829.369141, + "max_per_call_nanos": 557090.717773}, + {"relative_spread": 0.025232, + "param": 256, + "ok_count": 7, + "min_per_call_nanos": 942869.012695, + "median_per_call_nanos": 962036.590332, + "max_per_call_nanos": 967142.869141}, + {"relative_spread": 0.014841, + "param": 384, + "ok_count": 7, + "min_per_call_nanos": 2154293.5, + "median_per_call_nanos": 2164065.435547, + "max_per_call_nanos": 2186409.929688}, + {"relative_spread": 0.045709, + "param": 512, + "ok_count": 7, + "min_per_call_nanos": 3770468.294922, + "median_per_call_nanos": 3810075.898438, + "max_per_call_nanos": 3944622.800781}, + {"relative_spread": 0.030015, + "param": 768, + "ok_count": 7, + "min_per_call_nanos": 8558903.132812, + "median_per_call_nanos": 8629241.71875, + "max_per_call_nanos": 8817911.257812}], + "spawn_floor_nanos": 26532505, + "slope": -0.013417, + "ratios": + [[128, 14.807961], + [192, 14.915076], + [256, 14.679513], + [384, 14.676008], + [512, 14.534286], + [768, 14.630198]], + "points": + [{"trial_index": 0, + "total_nanos": 2037468018, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 248714.357666, + "peak_rss_kb": 70076, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1987490877, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 242613.632446, + "peak_rss_kb": 70268, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1991687291, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 243125.890015, + "peak_rss_kb": 69820, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1988737320, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 242765.786133, + "peak_rss_kb": 70416, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1958093341, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 239025.06604, + "peak_rss_kb": 69976, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1963260273, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 239655.795044, + "peak_rss_kb": 70552, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1954590763, + "status": "ok", + "result_hash": "0xc0da4d3c0954ded5", + "per_call_nanos": 238597.505249, + "peak_rss_kb": 69468, + "part_of_verdict": true, + "param": 128, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1129098701, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 551317.725098, + "peak_rss_kb": 75476, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1140921790, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 557090.717773, + "peak_rss_kb": 75416, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1119448455, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 546605.690918, + "peak_rss_kb": 76108, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1115705988, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 544778.314453, + "peak_rss_kb": 76120, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 2189229548, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 534479.870117, + "peak_rss_kb": 75416, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 2262618997, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 552397.216064, + "peak_rss_kb": 75412, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 4096, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1126050548, + "status": "ok", + "result_hash": "0xafb3e3f148207aa9", + "per_call_nanos": 549829.369141, + "peak_rss_kb": 76416, + "part_of_verdict": true, + "param": 192, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1970556568, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 962185.824219, + "peak_rss_kb": 76440, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1930995738, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 942869.012695, + "peak_rss_kb": 76344, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1941968509, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 948226.811035, + "peak_rss_kb": 76248, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1980708596, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 967142.869141, + "peak_rss_kb": 76484, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1972621839, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 963194.257324, + "peak_rss_kb": 76372, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1970250937, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 962036.590332, + "peak_rss_kb": 76032, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1944797382, + "status": "ok", + "result_hash": "0xd059245864275e8c", + "per_call_nanos": 949608.09668, + "peak_rss_kb": 76520, + "part_of_verdict": true, + "param": 256, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 2212290764, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2160440.199219, + "peak_rss_kb": 82632, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1102998272, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2154293.5, + "peak_rss_kb": 81984, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1108683762, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2165397.972656, + "peak_rss_kb": 82260, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1113972374, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2175727.292969, + "peak_rss_kb": 81520, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1103170179, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2154629.255859, + "peak_rss_kb": 81388, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1119441884, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2186409.929688, + "peak_rss_kb": 81564, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1108001503, + "status": "ok", + "result_hash": "0xd534ce16d5fde84c", + "per_call_nanos": 2164065.435547, + "peak_rss_kb": 81544, + "part_of_verdict": true, + "param": 384, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1930479767, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3770468.294922, + "peak_rss_kb": 97756, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1944024831, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3796923.498047, + "peak_rss_kb": 97932, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1969444130, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3846570.566406, + "peak_rss_kb": 98692, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1950758860, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3810075.898438, + "peak_rss_kb": 97948, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 2019646874, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3944622.800781, + "peak_rss_kb": 98648, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1955504639, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3819344.998047, + "peak_rss_kb": 98680, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1941655109, + "status": "ok", + "result_hash": "0x1c721a486cd1cef8", + "per_call_nanos": 3792295.134766, + "peak_rss_kb": 97888, + "part_of_verdict": true, + "param": 512, + "inner_repeats": 512, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1098664831, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8583318.992188, + "peak_rss_kb": 123196, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 1101121164, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8602509.09375, + "peak_rss_kb": 123628, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 1128692641, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8817911.257812, + "peak_rss_kb": 123528, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1118291111, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8736649.304688, + "peak_rss_kb": 123116, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 1095539601, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8558903.132812, + "peak_rss_kb": 123108, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 5, + "total_nanos": 1104542940, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8629241.71875, + "peak_rss_kb": 123232, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 6, + "total_nanos": 1119206940, + "status": "ok", + "result_hash": "0x183b262626ac8d32", + "per_call_nanos": 8743804.21875, + "peak_rss_kb": 123012, + "part_of_verdict": true, + "param": 768, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runReducedMatrix", + "env": + {"timestamp_unix_ms": 1788229901141, + "timestamp_iso": "2026-09-01T02:31:41Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 2000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": + {"params": [128, 192, 256, 384, 512, 768], "kind": "custom"}, + "param_floor": 128, + "param_ceiling": 768, + "outer_trials": 7, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 2", + "c_min": 14.534286, + "c_max": 14.915076, + "budget_truncated": false, + "advisories": []}, + {"verdict_dropped_leading": 1, + "verdict": "consistent_with_declared_complexity", + "trial_summaries": + [{"relative_spread": 0.0139, + "param": 8, + "ok_count": 5, + "min_per_call_nanos": 85092.466309, + "median_per_call_nanos": 85829.535645, + "max_per_call_nanos": 86285.459351}, + {"relative_spread": 0.02373, + "param": 12, + "ok_count": 5, + "min_per_call_nanos": 278718.442383, + "median_per_call_nanos": 280194.145508, + "max_per_call_nanos": 285367.519043}, + {"relative_spread": 0.029284, + "param": 16, + "ok_count": 5, + "min_per_call_nanos": 656646.629883, + "median_per_call_nanos": 659408.157227, + "max_per_call_nanos": 675956.880859}, + {"relative_spread": 0.028002, + "param": 24, + "ok_count": 5, + "min_per_call_nanos": 2171896.269531, + "median_per_call_nanos": 2180514.945312, + "max_per_call_nanos": 2232956.128906}, + {"relative_spread": 0.010174, + "param": 32, + "ok_count": 5, + "min_per_call_nanos": 5099865.21875, + "median_per_call_nanos": 5126501.742188, + "max_per_call_nanos": 5152022.234375}, + {"relative_spread": 0.018444, + "param": 48, + "ok_count": 5, + "min_per_call_nanos": 17080104.78125, + "median_per_call_nanos": 17193463.3125, + "max_per_call_nanos": 17397212.5625}, + {"relative_spread": 0.016764, + "param": 64, + "ok_count": 5, + "min_per_call_nanos": 40281642.5625, + "median_per_call_nanos": 40511576.5, + "max_per_call_nanos": 40960795}], + "spawn_floor_nanos": 23503365, + "slope": -0.029609, + "ratios": + [[8, 167.635812], + [12, 162.14939], + [16, 160.98832], + [24, 157.734009], + [32, 156.448417], + [48, 155.467514], + [64, 154.5394]], + "points": + [{"trial_index": 0, + "total_nanos": 706850483, + "status": "ok", + "result_hash": "0xb5fde41660becb07", + "per_call_nanos": 86285.459351, + "peak_rss_kb": 68588, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 703115556, + "status": "ok", + "result_hash": "0xb5fde41660becb07", + "per_call_nanos": 85829.535645, + "peak_rss_kb": 68320, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 697077484, + "status": "ok", + "result_hash": "0xb5fde41660becb07", + "per_call_nanos": 85092.466309, + "peak_rss_kb": 68368, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 701018909, + "status": "ok", + "result_hash": "0xb5fde41660becb07", + "per_call_nanos": 85573.59729, + "peak_rss_kb": 68324, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 704367574, + "status": "ok", + "result_hash": "0xb5fde41660becb07", + "per_call_nanos": 85982.369873, + "peak_rss_kb": 68424, + "part_of_verdict": true, + "param": 8, + "inner_repeats": 8192, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 570815370, + "status": "ok", + "result_hash": "0xac317fd8a6257d68", + "per_call_nanos": 278718.442383, + "peak_rss_kb": 67944, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 584432679, + "status": "ok", + "result_hash": "0xac317fd8a6257d68", + "per_call_nanos": 285367.519043, + "peak_rss_kb": 67908, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 573837610, + "status": "ok", + "result_hash": "0xac317fd8a6257d68", + "per_call_nanos": 280194.145508, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 573166706, + "status": "ok", + "result_hash": "0xac317fd8a6257d68", + "per_call_nanos": 279866.555664, + "peak_rss_kb": 68060, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 575046323, + "status": "ok", + "result_hash": "0xac317fd8a6257d68", + "per_call_nanos": 280784.337402, + "peak_rss_kb": 68312, + "part_of_verdict": true, + "param": 12, + "inner_repeats": 2048, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 689682683, + "status": "ok", + "result_hash": "0xc0abe62f50e6fb35", + "per_call_nanos": 673518.245117, + "peak_rss_kb": 68276, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 672406149, + "status": "ok", + "result_hash": "0xc0abe62f50e6fb35", + "per_call_nanos": 656646.629883, + "peak_rss_kb": 68084, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 692179846, + "status": "ok", + "result_hash": "0xc0abe62f50e6fb35", + "per_call_nanos": 675956.880859, + "peak_rss_kb": 68460, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 675233953, + "status": "ok", + "result_hash": "0xc0abe62f50e6fb35", + "per_call_nanos": 659408.157227, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 674398003, + "status": "ok", + "result_hash": "0xc0abe62f50e6fb35", + "per_call_nanos": 658591.799805, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 16, + "inner_repeats": 1024, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 556921573, + "status": "ok", + "result_hash": "0x641fd5425b5171c2", + "per_call_nanos": 2175474.894531, + "peak_rss_kb": 68080, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 571636769, + "status": "ok", + "result_hash": "0x641fd5425b5171c2", + "per_call_nanos": 2232956.128906, + "peak_rss_kb": 68316, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 556005445, + "status": "ok", + "result_hash": "0x641fd5425b5171c2", + "per_call_nanos": 2171896.269531, + "peak_rss_kb": 67852, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 561796060, + "status": "ok", + "result_hash": "0x641fd5425b5171c2", + "per_call_nanos": 2194515.859375, + "peak_rss_kb": 67968, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 558211826, + "status": "ok", + "result_hash": "0x641fd5425b5171c2", + "per_call_nanos": 2180514.945312, + "peak_rss_kb": 68580, + "part_of_verdict": true, + "param": 24, + "inner_repeats": 256, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 654645048, + "status": "ok", + "result_hash": "0xd44b7fe8ef9205a", + "per_call_nanos": 5114414.4375, + "peak_rss_kb": 67960, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 659458846, + "status": "ok", + "result_hash": "0xd44b7fe8ef9205a", + "per_call_nanos": 5152022.234375, + "peak_rss_kb": 68084, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 652782748, + "status": "ok", + "result_hash": "0xd44b7fe8ef9205a", + "per_call_nanos": 5099865.21875, + "peak_rss_kb": 67988, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 657425331, + "status": "ok", + "result_hash": "0xd44b7fe8ef9205a", + "per_call_nanos": 5136135.398438, + "peak_rss_kb": 67956, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 656192223, + "status": "ok", + "result_hash": "0xd44b7fe8ef9205a", + "per_call_nanos": 5126501.742188, + "peak_rss_kb": 68360, + "part_of_verdict": true, + "param": 32, + "inner_repeats": 128, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 1095077096, + "status": "ok", + "result_hash": "0x681b2201cb335f18", + "per_call_nanos": 17110579.625, + "peak_rss_kb": 68292, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 556710802, + "status": "ok", + "result_hash": "0x681b2201cb335f18", + "per_call_nanos": 17397212.5625, + "peak_rss_kb": 68320, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 550190826, + "status": "ok", + "result_hash": "0x681b2201cb335f18", + "per_call_nanos": 17193463.3125, + "peak_rss_kb": 68596, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 1093126706, + "status": "ok", + "result_hash": "0x681b2201cb335f18", + "per_call_nanos": 17080104.78125, + "peak_rss_kb": 68132, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 64, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 550510912, + "status": "ok", + "result_hash": "0x681b2201cb335f18", + "per_call_nanos": 17203466, + "peak_rss_kb": 67832, + "part_of_verdict": true, + "param": 48, + "inner_repeats": 32, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 0, + "total_nanos": 647363004, + "status": "ok", + "result_hash": "0x7b25b06c331c5174", + "per_call_nanos": 40460187.75, + "peak_rss_kb": 68344, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 1, + "total_nanos": 648185224, + "status": "ok", + "result_hash": "0x7b25b06c331c5174", + "per_call_nanos": 40511576.5, + "peak_rss_kb": 68356, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 2, + "total_nanos": 655372720, + "status": "ok", + "result_hash": "0x7b25b06c331c5174", + "per_call_nanos": 40960795, + "peak_rss_kb": 68424, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 3, + "total_nanos": 649953657, + "status": "ok", + "result_hash": "0x7b25b06c331c5174", + "per_call_nanos": 40622103.5625, + "peak_rss_kb": 68156, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}, + {"trial_index": 4, + "total_nanos": 644506281, + "status": "ok", + "result_hash": "0x7b25b06c331c5174", + "per_call_nanos": 40281642.5625, + "peak_rss_kb": 68296, + "part_of_verdict": true, + "param": 64, + "inner_repeats": 16, + "error": null, + "below_signal_floor": false, + "alloc_bytes": null}], + "kind": "parametric", + "hashable": true, + "function": "Hex.RowReduceBench.runNullspace", + "env": + {"timestamp_unix_ms": 1788229972061, + "timestamp_iso": "2026-09-01T02:32:52Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"verdict_warmup_fraction": 0.2, + "target_inner_nanos": 1000000000, + "slope_tolerance": 0.15, + "signal_floor_multiplier": 10, + "param_schedule": {"params": [8, 12, 16, 24, 32, 48, 64], "kind": "custom"}, + "param_floor": 8, + "param_ceiling": 64, + "outer_trials": 5, + "narrow_range_noise_floor": 1.5, + "max_seconds_per_call": 10, + "cache_mode": "warm"}, + "complexity_formula": "n ^ 3", + "c_min": 154.5394, + "c_max": 162.14939, + "budget_truncated": false, + "advisories": []}, + {"points": + [{"total_nanos": 220594064, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 0, + "peak_rss_kb": 68592, + "inner_repeats": 2, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 221736118, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 1, + "peak_rss_kb": 67988, + "inner_repeats": 2, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 221837158, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 2, + "peak_rss_kb": 68368, + "inner_repeats": 2, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 221110240, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 3, + "peak_rss_kb": 67968, + "inner_repeats": 2, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 221181065, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 4, + "peak_rss_kb": 68292, + "inner_repeats": 2, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x40", + "min_nanos": 110297032, + "median_nanos": 110590532, + "max_nanos": 110918579, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runRank64", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788229996305, + "timestamp_iso": "2026-09-01T02:33:16Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x40"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 224318196, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 0, + "peak_rss_kb": 68424, + "inner_repeats": 128, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 226591967, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 1, + "peak_rss_kb": 68160, + "inner_repeats": 128, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 223573682, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 2, + "peak_rss_kb": 67836, + "inner_repeats": 128, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 223525822, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 3, + "peak_rss_kb": 68388, + "inner_repeats": 128, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 223501666, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 4, + "peak_rss_kb": 67824, + "inner_repeats": 128, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x10", + "min_nanos": 1746106, + "median_nanos": 1746669, + "max_nanos": 1770249, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runRank16", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788229999118, + "timestamp_iso": "2026-09-01T02:33:19Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x10"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 347944667, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 0, + "peak_rss_kb": 68456, + "inner_repeats": 8192, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 350173272, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 1, + "peak_rss_kb": 68264, + "inner_repeats": 8192, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 350196035, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 2, + "peak_rss_kb": 68004, + "inner_repeats": 8192, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 350063709, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 3, + "peak_rss_kb": 68552, + "inner_repeats": 8192, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 359188799, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 4, + "peak_rss_kb": 68432, + "inner_repeats": 8192, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x30", + "min_nanos": 42473, + "median_nanos": 42745, + "max_nanos": 43846, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintRank48", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230001966, + "timestamp_iso": "2026-09-01T02:33:21Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x30"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 227936422, + "status": "ok", + "result_hash": "0x0", + "repeat_index": 0, + "peak_rss_kb": 68716, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 228428011, + "status": "ok", + "result_hash": "0x0", + "repeat_index": 1, + "peak_rss_kb": 68720, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 232012225, + "status": "ok", + "result_hash": "0x0", + "repeat_index": 2, + "peak_rss_kb": 68712, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 233224062, + "status": "ok", + "result_hash": "0x0", + "repeat_index": 3, + "peak_rss_kb": 68424, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 233837301, + "status": "ok", + "result_hash": "0x0", + "repeat_index": 4, + "peak_rss_kb": 68560, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x0", + "min_nanos": 6956, + "median_nanos": 7080, + "max_nanos": 7136, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintOverhead", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230006649, + "timestamp_iso": "2026-09-01T02:33:26Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x0"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 374375735, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 0, + "peak_rss_kb": 68356, + "inner_repeats": 8, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 371307127, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 1, + "peak_rss_kb": 68056, + "inner_repeats": 8, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 375512451, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 2, + "peak_rss_kb": 68572, + "inner_repeats": 8, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 372390092, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 3, + "peak_rss_kb": 68180, + "inner_repeats": 8, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 370269788, + "status": "ok", + "result_hash": "0x30", + "repeat_index": 4, + "peak_rss_kb": 68292, + "inner_repeats": 8, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x30", + "min_nanos": 46283723, + "median_nanos": 46548761, + "max_nanos": 46939056, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runRank48", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230009885, + "timestamp_iso": "2026-09-01T02:33:29Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x30"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 359799856, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 0, + "peak_rss_kb": 68428, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 359434915, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 1, + "peak_rss_kb": 68060, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 363549405, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 2, + "peak_rss_kb": 68576, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 359706738, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 3, + "peak_rss_kb": 68480, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 368812749, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 4, + "peak_rss_kb": 68580, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x20", + "min_nanos": 21938, + "median_nanos": 21960, + "max_nanos": 22510, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintRank32", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230014517, + "timestamp_iso": "2026-09-01T02:33:34Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x20"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 367628513, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 0, + "peak_rss_kb": 68548, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 366507461, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 1, + "peak_rss_kb": 68452, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 370923650, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 2, + "peak_rss_kb": 68220, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 365201245, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 3, + "peak_rss_kb": 68124, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 366816560, + "status": "ok", + "result_hash": "0x10", + "repeat_index": 4, + "peak_rss_kb": 68528, + "inner_repeats": 32768, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x10", + "min_nanos": 11145, + "median_nanos": 11194, + "max_nanos": 11319, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintRank16", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230019323, + "timestamp_iso": "2026-09-01T02:33:39Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x10"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 257212530, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 0, + "peak_rss_kb": 68280, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 257095856, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 1, + "peak_rss_kb": 68724, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 257647555, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 2, + "peak_rss_kb": 67940, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 256461336, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 3, + "peak_rss_kb": 68532, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 255872372, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 4, + "peak_rss_kb": 68732, + "inner_repeats": 16384, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x18", + "min_nanos": 15617, + "median_nanos": 15691, + "max_nanos": 15725, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintRank24", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230024200, + "timestamp_iso": "2026-09-01T02:33:44Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x18"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 377699537, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 0, + "peak_rss_kb": 68356, + "inner_repeats": 64, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 371179570, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 1, + "peak_rss_kb": 68148, + "inner_repeats": 64, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 378345245, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 2, + "peak_rss_kb": 67848, + "inner_repeats": 64, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 374958593, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 3, + "peak_rss_kb": 68360, + "inner_repeats": 64, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 382781122, + "status": "ok", + "result_hash": "0x18", + "repeat_index": 4, + "peak_rss_kb": 68160, + "inner_repeats": 64, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x18", + "min_nanos": 5799680, + "median_nanos": 5901555, + "max_nanos": 5980955, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runRank24", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230027740, + "timestamp_iso": "2026-09-01T02:33:47Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x18"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 226100202, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 0, + "peak_rss_kb": 67960, + "inner_repeats": 16, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 229792917, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 1, + "peak_rss_kb": 67876, + "inner_repeats": 16, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 220935555, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 2, + "peak_rss_kb": 68588, + "inner_repeats": 16, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 222120301, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 3, + "peak_rss_kb": 68172, + "inner_repeats": 16, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 221179277, + "status": "ok", + "result_hash": "0x20", + "repeat_index": 4, + "peak_rss_kb": 67864, + "inner_repeats": 16, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x20", + "min_nanos": 13808472, + "median_nanos": 13882518, + "max_nanos": 14362057, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runRank32", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230032423, + "timestamp_iso": "2026-09-01T02:33:52Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x20"}, + "budget_truncated": false}, + {"points": + [{"total_nanos": 308336879, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 0, + "peak_rss_kb": 68040, + "inner_repeats": 4096, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 304591186, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 1, + "peak_rss_kb": 68332, + "inner_repeats": 4096, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 305984682, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 2, + "peak_rss_kb": 68328, + "inner_repeats": 4096, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 317777386, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 3, + "peak_rss_kb": 68252, + "inner_repeats": 4096, + "error": null, + "alloc_bytes": null}, + {"total_nanos": 305934297, + "status": "ok", + "result_hash": "0x40", + "repeat_index": 4, + "peak_rss_kb": 68220, + "inner_repeats": 4096, + "error": null, + "alloc_bytes": null}], + "observed_hash": "0x40", + "min_nanos": 74363, + "median_nanos": 74703, + "max_nanos": 77582, + "kind": "fixed", + "hashes_agree": true, + "hashable": true, + "function": "Hex.RowReduceBench.runFlintRank64", + "expected_hash_check": {"status": "match"}, + "env": + {"timestamp_unix_ms": 1788230035273, + "timestamp_iso": "2026-09-01T02:33:55Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}, + "config": + {"warmup_first_iter": true, + "warmup": true, + "repeats": 5, + "min_total_seconds": 0.2, + "max_seconds_per_call": 10, + "expected_hash": "0x40"}, + "budget_truncated": false}], + "lean_bench_version": "0.1.0", + "export_schema_version": 1, + "env": + {"timestamp_unix_ms": 1788229470325, + "timestamp_iso": "2026-09-01T02:24:30Z", + "platform_target": "x86_64-unknown-linux-gnu", + "os": "linux", + "lean_version": "4.34.0-rc2", + "lean_toolchain": "leanprover/lean4:4.34.0-rc2", + "lean_bench_version": "0.1.0", + "hostname": "chungus2", + "git_dirty": false, + "git_commit": "2471e6e6c81a370fdd218b97d296d9033683dd3b", + "exe_name": "hexrowreduce_bench", + "cpu_model": "AMD EPYC 9455 48-Core Processor", + "cpu_cores": 96, + "arch": "x86_64"}} diff --git a/reports/bench-results/hex-row-reduce-profile-deficient-nullspace-f9fadac0c-chungus2.json b/reports/bench-results/hex-row-reduce-profile-deficient-nullspace-f9fadac0c-chungus2.json new file mode 100644 index 000000000..a90f8971c --- /dev/null +++ b/reports/bench-results/hex-row-reduce-profile-deficient-nullspace-f9fadac0c-chungus2.json @@ -0,0 +1,376 @@ +{ + "allocation_share_percent": 10.01, + "classified_percent": 83.38, + "diagnostics": { + "bench_pid": 3229645, + "bench_thread_name": "hexrowreduce_bench", + "bench_thread_tid": "3229651", + "calibration": { + "candidates": { + "absolute-monotonic-ms": { + "boundary_residual_raw_max_ms": 0.7576742172241211, + "boundary_residual_trimmed_max_ms": 0.4953150749206543, + "hit_count": 1179, + "regions_without_samples": 0, + "within_residual_limit": true + }, + "relative-to-meta-start-ms": { + "boundary_residual_raw_max_ms": null, + "boundary_residual_trimmed_max_ms": null, + "hit_count": 0, + "regions_without_samples": 2, + "within_residual_limit": false + } + }, + "configured_max_residual_ms": 5.0, + "effective_max_residual_ms": 5.0, + "raw_max_residual_ms": 0.7576742172241211, + "residual_ms": 0.4953150749206543, + "residual_statistic": "one-boundary-trimmed-maximum", + "sample_interval_ms": 1.001001, + "selected_mode": "absolute-monotonic-ms", + "within_residual_limit": true + }, + "calibration_max_residual_ms": 5.0, + "calibration_residual_ms": 0.4953150749206543, + "confidence": "passed", + "expected_samples_bench_thread": 1178.8, + "low_confidence_reasons": [], + "minimum_retained_samples": 100, + "off_bench_thread_samples_in_window": 0, + "regions_total": 2, + "rejected_samples_bench_thread": 174, + "retained_samples_bench_thread": 1179, + "samply_interval_ms": 1.001001, + "samply_meta_start_time_ms": 1788227332050.677, + "samply_timestamp_mode": "absolute-monotonic-ms", + "schema": 2, + "sensitivity": { + "cases": { + "minus": { + "retained_samples": 1179, + "shift_ms": -5.0, + "top_leaf_functions": [ + { + "function": 198, + "name": "0xb78230", + "samples": 121 + }, + { + "function": 215, + "name": "0xb784d1", + "samples": 54 + }, + { + "function": 227, + "name": "0xb8e3c0", + "samples": 51 + } + ] + }, + "nominal": { + "retained_samples": 1179, + "shift_ms": 0.0, + "top_leaf_functions": [ + { + "function": 198, + "name": "0xb78230", + "samples": 121 + }, + { + "function": 215, + "name": "0xb784d1", + "samples": 54 + }, + { + "function": 227, + "name": "0xb8e3c0", + "samples": 51 + } + ] + }, + "plus": { + "retained_samples": 1175, + "shift_ms": 5.0, + "top_leaf_functions": [ + { + "function": 198, + "name": "0xb78230", + "samples": 120 + }, + { + "function": 215, + "name": "0xb784d1", + "samples": 54 + }, + { + "function": 227, + "name": "0xb8e3c0", + "samples": 51 + } + ] + } + }, + "comparisons": { + "minus": { + "comparison_samples": 1179, + "effective_max_total_variation_distance": 0.1, + "exchanged_fraction": 0.008481764206955046, + "exchanged_samples": 10, + "failure_reasons": [], + "leaf_function_support_size": 181, + "maximum_sampling_noise_allowance": 0.5, + "noise_allowance_discriminating": true, + "sample_count_adequate": true, + "sampling_noise_allowance": 0.03061905131092381, + "total_variation_distance": 0.003392705682782019, + "verdict": "passed" + }, + "plus": { + "comparison_samples": 1175, + "effective_max_total_variation_distance": 0.1, + "exchanged_fraction": 0.005106382978723404, + "exchanged_samples": 6, + "failure_reasons": [], + "leaf_function_support_size": 180, + "maximum_sampling_noise_allowance": 0.5, + "noise_allowance_discriminating": true, + "sample_count_adequate": true, + "sampling_noise_allowance": 0.02373232348314332, + "total_variation_distance": 0.0030086802735820135, + "verdict": "passed" + } + }, + "configured_max_total_variation_distance": 0.1, + "leaf_function_distributions_stable": true, + "maximum_sampling_noise_allowance": 0.5, + "minimum_comparison_samples": 100, + "reported_top_function_count": 3, + "sampling_noise_coefficient": 0.6, + "shift_ms": 5.0, + "verdict": "passed" + }, + "sidecar_mono_anchor_ns": 2475132878868899, + "spawn_anchor_mono_ns": 2475132506813979, + "spawn_anchor_wall_ns": 1788227332049067824, + "stage": "complete", + "total_timed_ms": 1179.957875 + }, + "inclusive_hex": [ + { + "function": "Hex.RowReduceBench.runReducedMatrix", + "percent": 51.91 + }, + { + "function": "Hex.Matrix.ofFn", + "percent": 42.83 + }, + { + "function": "Hex.Matrix.IsRowReduced.nullspaceMatrix", + "percent": 37.91 + }, + { + "function": "Hex.Matrix.getRow", + "percent": 10.26 + }, + { + "function": "Hex.Matrix.IsRowReduced.pivotIndex?", + "percent": 5.34 + } + ], + "leaf_categories": { + "allocation": 10.01, + "lean-own-code": 39.02, + "lean-runtime": 34.35, + "other": 16.62 + }, + "profile": "/tmp/hex-profile-runReducedMatrix-768.json.gz", + "samples": 1179, + "symbols": "/tmp/hex-profile-runReducedMatrix-768.json.syms.json", + "top_inclusive": [ + { + "function": "std::__1::__function::__func::operator()()", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.wrapLoopForSidecar", + "percent": 100.0 + }, + { + "function": "lean::lthread::imp::_main(void*)", + "percent": 100.0 + }, + { + "function": "_private.HexRowReduce.Bench.0_Hex.RowReduceBench.initFn_.lam_0.00_@.HexRowReduce.Bench.3564274215__hygCtx_.hyg.33.", + "percent": 100.0 + }, + { + "function": "fun_124075", + "percent": 100.0 + }, + { + "function": "_private.Init.Data.Range.Basic.0_Std.Legacy.Range.forIn'.loop", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.Cli.runChildCmd", + "percent": 100.0 + }, + { + "function": "lean_apply_2", + "percent": 100.0 + }, + { + "function": "start_thread", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.runChildMode", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.autoTune", + "percent": 100.0 + }, + { + "function": "_private.Init.Data.Array.Basic.0_Array.ofFn.go", + "percent": 76.84 + }, + { + "function": "lean_apply_1", + "percent": 74.3 + }, + { + "function": "Hex.RowReduceBench.runReducedMatrix", + "percent": 51.91 + }, + { + "function": "_private.HexRowReduce.Bench.0_Hex.RowReduceBench.matrixChecksum", + "percent": 47.24 + } + ], + "top_self": [ + { + "function": "Hex.Matrix.IsRowReduced.nullspaceMatrix", + "percent": 23.92 + }, + { + "function": "Hex.Matrix.getRow", + "percent": 10.26 + }, + { + "function": "instHashableRat.hash", + "percent": 8.48 + }, + { + "function": "lean_apply_1", + "percent": 7.63 + }, + { + "function": "lean_array_push", + "percent": 6.53 + }, + { + "function": "lean_apply_2", + "percent": 5.77 + }, + { + "function": "lean::lean_del_core_other(lean_object*, unsigned char, lean_object*)", + "percent": 5.77 + }, + { + "function": "_private.HexRowReduce.Nullspace.0_Hex.Matrix.IsRowReduced.pivotIndexAux", + "percent": 5.26 + }, + { + "function": "mi_free", + "percent": 5.0 + }, + { + "function": "Hex.Matrix.ofFn", + "percent": 4.83 + }, + { + "function": "lean_dec_ref_cold", + "percent": 2.97 + }, + { + "function": "mi_malloc_small", + "percent": 2.37 + }, + { + "function": "_private.HexRowReduce.Bench.0_Hex.RowReduceBench.matrixChecksum", + "percent": 2.37 + }, + { + "function": "_private.Init.Data.Array.Basic.0_Array.ofFn.go", + "percent": 1.95 + }, + { + "function": "lean_inc_heartbeat", + "percent": 1.87 + } + ], + "top_self_undecorated": [ + { + "percent": 13.57, + "symbol": "Hex.Matrix.IsRowReduced.nullspaceMatrix_.at_.00Hex.Matrix.nullspaceBasisMatrix_.at_.00Hex.RowReduceBench.runNullspaceMatrix.spec_0.spec_0_.redArg_.lam_1" + }, + { + "percent": 10.35, + "symbol": "Hex.Matrix.IsRowReduced.nullspaceMatrix_.at_.00Hex.Matrix.nullspaceBasisMatrix_.at_.00Hex.RowReduceBench.runNullspaceMatrix.spec_0.spec_0_.redArg_.lam_1_.boxed" + }, + { + "percent": 8.48, + "symbol": "instHashableRat.hash" + }, + { + "percent": 7.63, + "symbol": "lean_apply_1" + }, + { + "percent": 6.53, + "symbol": "lean_array_push" + }, + { + "percent": 6.02, + "symbol": "Hex.Matrix.getRow_.redArg_.lam_0" + }, + { + "percent": 5.77, + "symbol": "lean_apply_2" + }, + { + "percent": 5.77, + "symbol": "lean::lean_del_core_other(lean_object*, unsigned char, lean_object*)" + }, + { + "percent": 5.26, + "symbol": "_private.HexRowReduce.Nullspace.0_Hex.Matrix.IsRowReduced.pivotIndexAux_.redArg" + }, + { + "percent": 5.0, + "symbol": "mi_free" + }, + { + "percent": 4.83, + "symbol": "Hex.Matrix.ofFn_.redArg_.lam_0_.boxed" + }, + { + "percent": 4.24, + "symbol": "Hex.Matrix.getRow_.redArg_.lam_0_.boxed" + }, + { + "percent": 2.97, + "symbol": "lean_dec_ref_cold" + }, + { + "percent": 2.37, + "symbol": "mi_malloc_small" + }, + { + "percent": 2.37, + "symbol": "_private.HexRowReduce.Bench.0_Hex.RowReduceBench.matrixChecksum" + } + ] +} diff --git a/reports/bench-results/hex-row-reduce-profile-dense-rref-f9fadac0c-chungus2.json b/reports/bench-results/hex-row-reduce-profile-dense-rref-f9fadac0c-chungus2.json new file mode 100644 index 000000000..12e1095c5 --- /dev/null +++ b/reports/bench-results/hex-row-reduce-profile-dense-rref-f9fadac0c-chungus2.json @@ -0,0 +1,373 @@ +{ + "allocation_share_percent": 34.46, + "classified_percent": 99.32, + "diagnostics": { + "bench_pid": 3229099, + "bench_thread_name": "hexrowreduce_bench", + "bench_thread_tid": "3229105", + "calibration": { + "candidates": { + "absolute-monotonic-ms": { + "boundary_residual_raw_max_ms": 0.6549019813537598, + "boundary_residual_trimmed_max_ms": 0.3577609062194824, + "hit_count": 1901, + "regions_without_samples": 0, + "within_residual_limit": true + }, + "relative-to-meta-start-ms": { + "boundary_residual_raw_max_ms": null, + "boundary_residual_trimmed_max_ms": null, + "hit_count": 0, + "regions_without_samples": 2, + "within_residual_limit": false + } + }, + "configured_max_residual_ms": 5.0, + "effective_max_residual_ms": 5.0, + "raw_max_residual_ms": 0.6549019813537598, + "residual_ms": 0.3577609062194824, + "residual_statistic": "one-boundary-trimmed-maximum", + "sample_interval_ms": 1.001001, + "selected_mode": "absolute-monotonic-ms", + "within_residual_limit": true + }, + "calibration_max_residual_ms": 5.0, + "calibration_residual_ms": 0.3577609062194824, + "confidence": "passed", + "expected_samples_bench_thread": 1909.0, + "low_confidence_reasons": [], + "minimum_retained_samples": 100, + "off_bench_thread_samples_in_window": 0, + "regions_total": 2, + "rejected_samples_bench_thread": 7, + "retained_samples_bench_thread": 1901, + "samply_interval_ms": 1.001001, + "samply_meta_start_time_ms": 1788227326402.0244, + "samply_timestamp_mode": "absolute-monotonic-ms", + "schema": 2, + "sensitivity": { + "cases": { + "minus": { + "retained_samples": 1896, + "shift_ms": -5.0, + "top_leaf_functions": [ + { + "function": 35, + "name": "0xaef3c", + "samples": 89 + }, + { + "function": 88, + "name": "0x4c9b3f4", + "samples": 89 + }, + { + "function": 48, + "name": "0xaef4b", + "samples": 76 + } + ] + }, + "nominal": { + "retained_samples": 1901, + "shift_ms": 0.0, + "top_leaf_functions": [ + { + "function": 35, + "name": "0xaef3c", + "samples": 89 + }, + { + "function": 88, + "name": "0x4c9b3f4", + "samples": 89 + }, + { + "function": 48, + "name": "0xaef4b", + "samples": 78 + } + ] + }, + "plus": { + "retained_samples": 1899, + "shift_ms": 5.0, + "top_leaf_functions": [ + { + "function": 88, + "name": "0x4c9b3f4", + "samples": 89 + }, + { + "function": 35, + "name": "0xaef3c", + "samples": 88 + }, + { + "function": 48, + "name": "0xaef4b", + "samples": 78 + } + ] + } + }, + "comparisons": { + "minus": { + "comparison_samples": 1896, + "effective_max_total_variation_distance": 0.1, + "exchanged_fraction": 0.0026371308016877636, + "exchanged_samples": 5, + "failure_reasons": [], + "leaf_function_support_size": 358, + "maximum_sampling_noise_allowance": 0.5, + "noise_allowance_discriminating": true, + "sample_count_adequate": true, + "sampling_noise_allowance": 0.018934525698293153, + "total_variation_distance": 0.002485922354878732, + "verdict": "passed" + }, + "plus": { + "comparison_samples": 1899, + "effective_max_total_variation_distance": 0.1, + "exchanged_fraction": 0.00105318588730911, + "exchanged_samples": 2, + "failure_reasons": [], + "leaf_function_support_size": 358, + "maximum_sampling_noise_allowance": 0.5, + "noise_allowance_discriminating": true, + "sample_count_adequate": true, + "sampling_noise_allowance": 0.011956327284944392, + "total_variation_distance": 0.0010033243776521846, + "verdict": "passed" + } + }, + "configured_max_total_variation_distance": 0.1, + "leaf_function_distributions_stable": true, + "maximum_sampling_noise_allowance": 0.5, + "minimum_comparison_samples": 100, + "reported_top_function_count": 3, + "sampling_noise_coefficient": 0.6, + "shift_ms": 5.0, + "verdict": "passed" + }, + "sidecar_mono_anchor_ns": 2475127047784357, + "spawn_anchor_mono_ns": 2475126858324539, + "spawn_anchor_wall_ns": 1788227326400578244, + "stage": "complete", + "total_timed_ms": 1910.944996 + }, + "inclusive_hex": [ + { + "function": "Hex.RowReduceBench.runReduce", + "percent": 100.0 + }, + { + "function": "Hex.Matrix.rowReduce", + "percent": 99.95 + }, + { + "function": "Hex.Matrix.rowReduceLoop", + "percent": 99.89 + }, + { + "function": "Hex.Matrix.rowAdd", + "percent": 98.74 + } + ], + "leaf_categories": { + "allocation": 34.46, + "gmp": 40.14, + "lean-own-code": 1.16, + "lean-runtime": 23.57, + "other": 0.68 + }, + "profile": "/tmp/hex-profile-runReduce-64.json.gz", + "samples": 1901, + "symbols": "/tmp/hex-profile-runReduce-64.json.syms.json", + "top_inclusive": [ + { + "function": "lean::lthread::imp::_main(void*)", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.wrapLoopForSidecar", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.Cli.runChildCmd", + "percent": 100.0 + }, + { + "function": "_private.HexRowReduce.Bench.0_Hex.RowReduceBench.initFn_.lam_0.00_@.HexRowReduce.Bench.3855311405__hygCtx_.hyg.33.", + "percent": 100.0 + }, + { + "function": "lean_apply_2", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.runChildMode", + "percent": 100.0 + }, + { + "function": "fun_124075", + "percent": 100.0 + }, + { + "function": "lean-bench.LeanBench.autoTune", + "percent": 100.0 + }, + { + "function": "start_thread", + "percent": 100.0 + }, + { + "function": "std::__1::__function::__func::operator()()", + "percent": 100.0 + }, + { + "function": "_private.Init.Data.Range.Basic.0_Std.Legacy.Range.forIn'.loop", + "percent": 100.0 + }, + { + "function": "Hex.RowReduceBench.runReduce", + "percent": 100.0 + }, + { + "function": "Hex.Matrix.rowReduce", + "percent": 99.95 + }, + { + "function": "Hex.Matrix.rowReduceLoop", + "percent": 99.89 + }, + { + "function": "_private.HexRowReduce.Pivot.0_Hex.Matrix.eliminateColumn", + "percent": 98.95 + } + ], + "top_self": [ + { + "function": "_free", + "percent": 15.73 + }, + { + "function": "_gmpz_add", + "percent": 13.47 + }, + { + "function": "_GI___libc_malloc", + "percent": 11.15 + }, + { + "function": "_gmpz_init_set_ui", + "percent": 8.21 + }, + { + "function": "_gmp_default_allocate", + "percent": 6.58 + }, + { + "function": "_realloc", + "percent": 6.37 + }, + { + "function": "lean_nat_gcd", + "percent": 4.94 + }, + { + "function": "Rat.mul", + "percent": 4.0 + }, + { + "function": "Rat.add", + "percent": 3.31 + }, + { + "function": "_gmpz_mul_2exp", + "percent": 3.21 + }, + { + "function": "lean::mpz::mpz(unsigned long)", + "percent": 2.95 + }, + { + "function": "_gmpz_gcd", + "percent": 2.68 + }, + { + "function": "Fin.foldl.loop", + "percent": 2.58 + }, + { + "function": "_gmp_default_reallocate", + "percent": 1.89 + }, + { + "function": "_gmpz_realloc", + "percent": 1.79 + } + ], + "top_self_undecorated": [ + { + "percent": 15.73, + "symbol": "_free" + }, + { + "percent": 13.47, + "symbol": "_gmpz_add" + }, + { + "percent": 11.15, + "symbol": "_GI___libc_malloc" + }, + { + "percent": 8.21, + "symbol": "_gmpz_init_set_ui" + }, + { + "percent": 6.58, + "symbol": "_gmp_default_allocate" + }, + { + "percent": 6.37, + "symbol": "_realloc" + }, + { + "percent": 4.94, + "symbol": "lean_nat_gcd" + }, + { + "percent": 4.0, + "symbol": "Rat.mul" + }, + { + "percent": 3.31, + "symbol": "Rat.add" + }, + { + "percent": 3.21, + "symbol": "_gmpz_mul_2exp" + }, + { + "percent": 2.95, + "symbol": "lean::mpz::mpz(unsigned long)" + }, + { + "percent": 2.68, + "symbol": "_gmpz_gcd" + }, + { + "percent": 2.52, + "symbol": "Fin.foldl.loop_.at_.00Hex.Matrix.rowAdd_.at_.00_private.HexRowReduce.Pivot.0_Hex.Matrix.eliminateColumn_.at_.00Hex.Matrix.rowReduceLoop_.at_.00Hex.Matrix.rowReduce_.at_.00Hex.RowReduceBench.denseReduced.spec_0.spec_1.spec_4.spec_7.spec_8_.redArg" + }, + { + "percent": 1.89, + "symbol": "_gmp_default_reallocate" + }, + { + "percent": 1.79, + "symbol": "_gmpz_realloc" + } + ] +} diff --git a/reports/hex-row-reduce-performance.md b/reports/hex-row-reduce-performance.md index d36852191..a858590af 100644 --- a/reports/hex-row-reduce-performance.md +++ b/reports/hex-row-reduce-performance.md @@ -1,36 +1,160 @@ # HexRowReduce Performance Report -`HexRowReduce` provides the executable row-reduction stack over the `HexMatrix` -dense core: the row-echelon transform and its elementary-operation contracts -(`RowEchelon`), and the executable RREF loop with its pivot/free-column -partition and span/nullspace APIs (`RREF`). +`HexRowReduce` provides exact row reduction, rank, span membership and +coefficients, and nullspace construction over the `HexMatrix` dense core. Its +compiled implementation routes free-column construction through a proved +sorted complement merge and prepares the column-to-pivot lookup once before +materializing a nullspace basis. -## Bench Targets +## Bench targets -None. The row-reduction surface has no performance-critical headline benchmark: -its operations (`rref`, `rref_rank`, `nullspace`, `spanCoeffs`) are exact -rational computations whose cost is dominated by `Rat` arithmetic, and they are -validated for correctness rather than timed against an external tool. +The Mathlib-free `hexrowreduce_bench` executable registers direct mode-1 +targets for every advertised runtime surface. Preparation is outside the timed +region for targets whose names begin with `runEchelon` or `runReduced`. The +declared input families are `dense-rational-rref` and +`rank-deficient-rational-nullspace`. -## Comparators +| target | timed operation | family | declared model | +|---|---|---|---:| +| `runReduce` | public RREF | dense rational RREF | `n ^ 3` | +| `runRank` | public rank | dense rational RREF | `n ^ 3` | +| `runSpanCoeffs` | public span coefficients | dense rational RREF | `n ^ 3` | +| `runSpanContains` | public span membership | dense rational RREF | `n ^ 3` | +| `runEchelonSpanCoeffs` | prepared span coefficients | dense rational RREF | `n ^ 2` | +| `runEchelonSpanContains` | prepared span membership | dense rational RREF | `n ^ 2` | +| `runEchelonCoeffs` | prepared coefficient selection | rank-deficient rational nullspace | `n` | +| `runFreeCols` | prepared free-column list | rank-deficient rational nullspace | `n` | +| `runNullspaceMatrix` | public nullspace matrix | rank-deficient rational nullspace | `n ^ 3` | +| `runNullspace` | public nullspace vectors | rank-deficient rational nullspace | `n ^ 3` | +| `runReducedMatrix` | prepared nullspace matrix | rank-deficient rational nullspace | `n ^ 2` | +| `runReducedNullspace` | prepared nullspace vectors | rank-deficient rational nullspace | `n ^ 2` | -`HexRowReduce` declares no Phase-4 external comparator. Correctness of the -`rank`, `rref`, and `nullspace` operations is cross-checked against -python-flint's `fmpz_mat` / `fmpq_mat` through the conformance oracle -`scripts/oracle/matrix_flint.py` (driven by `hexrowreduce_emit_fixtures`): the -oracle confirms the rational rank, the unique reduced row echelon form, and the -right-kernel basis (each basis vector annihilated by the source matrix, with the -nullity matching `m - rank`). +The scientific artifact is +`reports/bench-results/hex-row-reduce-phase4-scientific.json` (SHA-256 +`ecc174e4ac710fa928f6e31464251ca5a0484d0ef3073992246af1f3e9a5e2f2`). +It was recorded from pristine source commit +`2471e6e6c81a370fdd218b97d296d9033683dd3b` on `chungus2`, an AMD EPYC 9455 +host running Lean 4.34.0-rc2 on x86-64 Linux. The exact command was: + +```sh +HEX_FLINT_BENCH_PYTHON=/tmp/hex9811-flint/bin/python \ + .lake/build/bin/hexrowreduce_bench run \ + --filter Hex.RowReduceBench.run \ + --export-file reports/bench-results/hex-row-reduce-phase4-scientific.json +``` ## Verdicts -The conformance oracle passes on every committed fixture -(`conformance-fixtures/HexRowReduce/rowreduce.jsonl`: nine matrices at the -4×4 / 6×6 / 8×8 bands in random, singular, and triangular shapes, each checked -for `rank`, `rref`, and `nullspace`). The in-Lean `#guard` conformance module -additionally checks the executable span/nullspace API on committed examples. +All twelve targets are consistent with their declared complexity at the +default 0.15 slope tolerance. An em dash means the harness had too few eligible +adjacent-rung ratios to fit a slope; its normalized-constant verdict still +passed. + +| target | model | fitted slope | normalized constant range | verdict | +|---|---:|---:|---:|---| +| `runReduce` | `n ^ 3` | -0.009 | 422.967–429.558 | pass | +| `runRank` | `n ^ 3` | -0.008 | 421.775–427.618 | pass | +| `runSpanCoeffs` | `n ^ 3` | -0.052 | 426.709–465.353 | pass | +| `runSpanContains` | `n ^ 3` | -0.052 | 426.680–466.068 | pass | +| `runEchelonSpanCoeffs` | `n ^ 2` | -0.006 | 453.532–467.502 | pass | +| `runEchelonSpanContains` | `n ^ 2` | +0.093 | 458.100–731.123 | pass | +| `runEchelonCoeffs` | `n` | — | 69.614–70.129 | pass | +| `runFreeCols` | `n` | — | 11.586–11.974 | pass | +| `runNullspaceMatrix` | `n ^ 3` | -0.026 | 155.269–162.348 | pass | +| `runNullspace` | `n ^ 3` | -0.030 | 154.539–162.149 | pass | +| `runReducedMatrix` | `n ^ 2` | -0.013 | 14.534–14.915 | pass | +| `runReducedNullspace` | `n ^ 2` | — | 14.921–16.169 | pass | + +The compiled benchmark list contains 12 parametric and 11 fixed targets. All +fixed repeats agreed and every expected result hash matched. The full verify +suite also passes with python-flint 0.9.0. + +## Comparator ratios + +The declared informational comparator is +**FLINT fmpq_mat.rref rank via python-flint**, using python-flint 0.9.0. The one +identical callable result is rank of the same dense rational `I + J` matrix: +Lean calls the public `rank` API and FLINT calls `fmpq_mat.rref()` and returns +only its integer rank. The FLINT driver caches input construction and leaves +the cached matrix unchanged. A fixed O(1) endpoint measures the Python +protocol overhead (7.080 us median), which is subtracted in the adjusted +ratios. + +| `n` | Lean rank median | FLINT median | FLINT minus overhead | raw Lean / FLINT | adjusted Lean / FLINT | +|---:|---:|---:|---:|---:|---:| +| 16† | 1.747 ms | 11.194 us | 4.114 us | 156.0× | 424.6× | +| 24 | 5.902 ms | 15.691 us | 8.611 us | 376.1× | 685.4× | +| 32 | 13.883 ms | 21.960 us | 14.880 us | 632.2× | 933.0× | +| 48 | 46.549 ms | 42.745 us | 35.665 us | 1089.0× | 1305.2× | +| 64 | 110.591 ms | 74.703 us | 67.623 us | 1480.4× | 1635.4× | + +† At `n = 16`, protocol overhead is 63% of the FLINT wall time, so that rung +is reported for completeness but excluded from the eligible comparator range. +From the eligible `n = 24` rung through `n = 64`, the adjusted ratio increases +monotonically from 685.4× to 1635.4×. The widening gap reflects the different +measured regimes on this ladder: Hex follows cubic elimination, while the +overhead-adjusted FLINT endpoint is still below its cubic asymptote. + +This comparison is informational rather than gating: FLINT executes optimized +C/GMP kernels behind a Python call, while Hex exercises the generic Lean +matrix and exact-rational stack. The Hex rank arm also computes the row +transform maintained by its shared `rowReduce` implementation, whereas FLINT's +`rref()` omits that output, so the ratios overstate a like-for-like rank gap. +Rank is the only identical callable result in the named comparator. RREF and +nullspace values remain correctness-oracle surfaces, and the other eleven +benchmark targets carry the exact absence tag +`no-comparable-surface-in-named-comparator`. + +## Profile + +One representative target from each declared input family was sampled at +999 Hz with samply 0.13.1 and lean-bench-samply commit +`9356baa2f5757ee40320a897bd284914d5bb9f5e`. Both profiles were captured from +pristine commit `f9fadac0cc8adfc2f87c2817fc3bbff863aa8c1f`; raw filtered profiles +and symbol sidecars remain developer-local under `/tmp`. + +| family / target | residual | timed | retained / rejected | off-thread | sensitivity | +|---|---:|---:|---:|---:|---| +| dense rational RREF / `runReduce 64` | 0.358 ms | 1,910.945 ms | 1,901 / 7 | 0 | pass | +| rank-deficient rational nullspace / `runReducedMatrix 768` | 0.495 ms | 1,179.958 ms | 1,179 / 174 | 0 | pass | + +For `runReduce`, inclusive samples attribute 99.95% to `rowReduce`, 99.89% to +`rowReduceLoop`, and 98.74% to row addition. Leaf attribution is 40.14% GMP, +34.46% allocation/free, 23.57% Lean runtime, 1.16% library code, and 0.68% +other. The committed summary is +`reports/bench-results/hex-row-reduce-profile-dense-rref-f9fadac0c-chungus2.json` +(SHA-256 +`fd722fdc6fd4e6914a0529fbc8353b99bec002fe26dc9a3dfa75092a3863ddfa`). + +For `runReducedMatrix`, inclusive samples attribute 47.24% to the benchmark's +result-forcing `matrixChecksum`, 42.83% to matrix materialization, 37.91% to +`nullspaceMatrix`, 10.26% to row access, and 5.34% to the once-prepared pivot +lookup. Result forcing is therefore a comparable share of the timed target, +not preparation. The automatic leaf classifier assigns 39.02% to library +code, 34.35% to Lean runtime, 10.01% to allocation/free, and 16.62% to other; +the latter includes the explicitly identified core checksum leaves +`instHashableRat.hash` (8.48%) and `Array.ofFn.go` (1.95%). Including those +named core leaves gives explicit attribution for 93.81% of samples. The +committed summary is +`reports/bench-results/hex-row-reduce-profile-deficient-nullspace-f9fadac0c-chungus2.json` +(SHA-256 +`5fd918be67df847920e5efb52d8693e4c013b7303bbed83bbf850cbcd236e583`). + +The exact commands were: + +```sh +LEAN_BENCH_SAMPLY_HOME=/tmp/hex9811-lean-bench-samply \ + scripts/profile/run_profile.sh .lake/build/bin/hexrowreduce_bench \ + Hex.RowReduceBench.runReduce 64 3000000000 +LEAN_BENCH_SAMPLY_HOME=/tmp/hex9811-lean-bench-samply \ + scripts/profile/run_profile.sh .lake/build/bin/hexrowreduce_bench \ + Hex.RowReduceBench.runReducedMatrix 768 3000000000 +python3 scripts/profile/summarize_profile.py \ + /tmp/hex-profile-runReduce-64.json.gz --thread hexrowreduce_bench +python3 scripts/profile/summarize_profile.py \ + /tmp/hex-profile-runReducedMatrix-768.json.gz --thread hexrowreduce_bench +``` ## Concerns -- [#9811](https://github.com/kim-em/hex-dev/issues/9811) tracks the missing - compiled performance evidence for the advertised row-reduction surface. +None. diff --git a/reports/phase4-ordered-mode-audit.md b/reports/phase4-ordered-mode-audit.md index fd71dbce4..3e06d863c 100644 --- a/reports/phase4-ordered-mode-audit.md +++ b/reports/phase4-ordered-mode-audit.md @@ -26,7 +26,7 @@ below because HexNumberFieldTower relies on it. | HexPoly | No multiplication comparator rung is eligible; the separate expected composition divergence is misfiled as a Concern and must move to the trend narrative. | [#9804](https://github.com/kim-em/hex-dev/issues/9804) | | HexMvPoly | The representation experiment remains unresolved under `## Concerns`. | [#9805](https://github.com/kim-em/hex-dev/issues/9805) | | HexMvGcd | Fixed shape/hash registrations are used as performance coverage without mode-3 budgets or ordered-mode exclusions. | [#9812](https://github.com/kim-em/hex-dev/issues/9812) | -| HexRowReduce | Advertised compiled operations have conformance evidence but no performance mode. | [#9811](https://github.com/kim-em/hex-dev/issues/9811) | +| HexRowReduce | Resolved: all advertised compiled operations have direct mode-1 coverage. | [#9811](https://github.com/kim-em/hex-dev/issues/9811) | | HexBareiss | An unresolved informational-comparator finding remains under `## Concerns`. | [#9806](https://github.com/kim-em/hex-dev/issues/9806) | | HexGF2 | The addition comparison is marshalling-dominated; the separate expected NTL divergence is misfiled as a Concern and must move to the trend narrative. | [#9807](https://github.com/kim-em/hex-dev/issues/9807) | | HexLLL | The verified-Isabelle comparison has only one point per headline family. | [#9808](https://github.com/kim-em/hex-dev/issues/9808) | diff --git a/scripts/bench/proof_only_runtime_exemptions/hexberlekamp-packedkernel-lean-806ed31d-da9e18f8.json b/scripts/bench/proof_only_runtime_exemptions/hexberlekamp-packedkernel-lean-806ed31d-da9e18f8.json new file mode 100644 index 000000000..3de2755e3 --- /dev/null +++ b/scripts/bench/proof_only_runtime_exemptions/hexberlekamp-packedkernel-lean-806ed31d-da9e18f8.json @@ -0,0 +1,6 @@ +{ + "path": "HexBerlekamp/PackedKernel.lean", + "baseline_blob": "806ed31de287bd0d5f9fe2fb0684c98cd4b38564", + "current_blob": "da9e18f854f1dee1fca29299aaa321aa3ae0e1bc", + "reason": "Rewrites a theorem proof through the new pivotRows_get bridge after nullspaceMatrix began using its prepared pivot-row table. The executable PackedKernel definitions and the factorization runtime call graph are unchanged." +} diff --git a/scripts/bench/proof_only_runtime_exemptions/lakefile-lean-e82c6493-efc2f4d7.json b/scripts/bench/proof_only_runtime_exemptions/lakefile-lean-e82c6493-efc2f4d7.json new file mode 100644 index 000000000..e16ee1a85 --- /dev/null +++ b/scripts/bench/proof_only_runtime_exemptions/lakefile-lean-e82c6493-efc2f4d7.json @@ -0,0 +1,6 @@ +{ + "path": "lakefile.lean", + "baseline_blob": "e82c649322c5dc6574071e576e92d644683eb00a", + "current_blob": "efc2f4d758bef7676f48f7af3bc2a42dd5e42b01", + "reason": "Combines the inherited, already-exempted HexPolyFp precompileModules and HexPrimality proof-probe registrations with the independent hexrowreduce_bench executable declaration. The new target does not change hexbz_factor_service, any library it imports, or its runtime call graph." +} diff --git a/scripts/oracle/flint_bench_driver.py b/scripts/oracle/flint_bench_driver.py index 9c30d185c..f7dfc18b1 100644 --- a/scripts/oracle/flint_bench_driver.py +++ b/scripts/oracle/flint_bench_driver.py @@ -152,6 +152,14 @@ * ``snf`` — returns the nonnegative Smith diagonal in divisibility order via ``flint.fmpz_mat(rows).snf()``. +### `fmpq_mat` (rational matrix) + +* ``rank_dense`` — returns the rank of the deterministic dense `I + J` square + matrix of dimension ``n``. The matrix is cached by dimension, so a fixed + benchmark's warmup request pays construction and timed requests measure only + ``fmpq_mat.rref()`` plus the constant-size integer reply. +* ``overhead`` — returns ``0`` without constructing a matrix. + ### `fq_default` (finite field F_q = F_p[x] / m(x)) Request fields: ``p`` (prime), ``modulus`` (coefficient list of the @@ -792,6 +800,36 @@ def _fmpz_mat_snf(req: dict[str, Any]) -> list[int]: } +# --------------------------------------------------------------------- +# `fmpq_mat` (rational matrix) +# --------------------------------------------------------------------- + +_FMPQ_DENSE_CACHE: dict[int, Any] = {} + + +def _fmpq_mat_rank_dense(req: dict[str, Any]) -> int: + n = req.get("n") + if not isinstance(n, int) or isinstance(n, bool) or n < 0: + raise ValueError("fmpq_mat/rank_dense requires a nonnegative integer 'n'") + matrix = _FMPQ_DENSE_CACHE.get(n) + if matrix is None: + rows = [[2 if i == j else 1 for j in range(n)] for i in range(n)] + matrix = flint.fmpq_mat(rows) # type: ignore[union-attr] + _FMPQ_DENSE_CACHE[n] = matrix + _rref, rank = matrix.rref() + return int(rank) + + +def _fmpq_mat_overhead(_req: dict[str, Any]) -> int: + return 0 + + +_FMPQ_MAT_OPS: dict[str, Callable[[dict[str, Any]], Any]] = { + "rank_dense": _fmpq_mat_rank_dense, + "overhead": _fmpq_mat_overhead, +} + + # --------------------------------------------------------------------- # `fq_default` (F_p[x] / m(x)) # --------------------------------------------------------------------- @@ -1018,6 +1056,7 @@ def _rcf_decide(req: dict[str, Any]) -> bool: "fmpq_series": _FMPQ_SERIES_OPS, "nmod_poly": _NMOD_POLY_OPS, "fmpz_mat": _FMPZ_MAT_OPS, + "fmpq_mat": _FMPQ_MAT_OPS, "fq_default": _FQ_DEFAULT_OPS, "nmod_poly_hensel": _NMOD_POLY_HENSEL_OPS, "rcf": _RCF_OPS, diff --git a/scripts/oracle/test_flint_fmpq_bench.py b/scripts/oracle/test_flint_fmpq_bench.py new file mode 100644 index 000000000..56552c99d --- /dev/null +++ b/scripts/oracle/test_flint_fmpq_bench.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +"""Unit tests for the persistent fmpq_mat rank benchmark endpoint.""" + +from __future__ import annotations + +import unittest +from unittest.mock import patch + +from scripts.oracle import flint_bench_driver as driver + + +class FakeMatrix: + def __init__(self, rows: list[list[int]]) -> None: + self.rows = [row[:] for row in rows] + self.rref_calls = 0 + + def rref(self): + self.rref_calls += 1 + return self, len(self.rows) + + +class FakeFlint: + def __init__(self) -> None: + self.constructed: list[FakeMatrix] = [] + + def fmpq_mat(self, rows: list[list[int]]) -> FakeMatrix: + matrix = FakeMatrix(rows) + self.constructed.append(matrix) + return matrix + + +class FmpqBenchTests(unittest.TestCase): + def setUp(self) -> None: + driver._FMPQ_DENSE_CACHE.clear() + + def test_dense_rank_caches_input_and_returns_constant_result(self) -> None: + fake = FakeFlint() + with patch.object(driver, "flint", fake): + self.assertEqual(driver._fmpq_mat_rank_dense({"n": 4}), 4) + before = [row[:] for row in fake.constructed[0].rows] + self.assertEqual(driver._fmpq_mat_rank_dense({"n": 4}), 4) + self.assertEqual(len(fake.constructed), 1) + self.assertEqual(fake.constructed[0].rows, before) + self.assertEqual(fake.constructed[0].rref_calls, 2) + + def test_dense_rank_rejects_invalid_dimensions(self) -> None: + for value in (-1, True, 2.5, "4"): + with self.subTest(value=value): + with self.assertRaises(ValueError): + driver._fmpq_mat_rank_dense({"n": value}) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/release/released-ci.yml b/scripts/release/released-ci.yml index ea8f34f86..eb25a0845 100644 --- a/scripts/release/released-ci.yml +++ b/scripts/release/released-ci.yml @@ -1530,6 +1530,9 @@ workflows: .lake/build .lake/packages/Hex*/.lake/build .lake/packages/hex-test-kit/.lake/build + bench/.lake/build + bench/.lake/packages/Hex*/.lake/build + bench/.lake/packages/hex-test-kit/.lake/build conformance/.lake/build conformance/.lake/packages/Hex*/.lake/build conformance/.lake/packages/hex-test-kit/.lake/build @@ -1547,11 +1550,20 @@ workflows: run: cd conformance && lake build - name: FLINT conformance oracle run: bash scripts/ci/run_oracles.sh + - name: Build + full bench verify (FLINT rank comparator) + env: + BENCH_VERIFY_HARD_CAP_SECONDS: "360" + HEX_FLINT_BENCH_DRIVER: ${{ github.workspace }}/scripts/oracle/flint_bench_driver.py + HEX_FLINT_BENCH_PYTHON: python3 + run: | + cd bench + lake build hexrowreduce_bench + bash ../scripts/ci/check_bench_verify_budget.sh hexrowreduce_bench - name: Assert Mathlib-free run: | if find . -type d -name mathlib | grep -q .; then echo "ERROR: a package pulled in Mathlib"; exit 1; fi - if grep -rqE '^import Mathlib' HexRowReduce conformance 2>/dev/null; then + if grep -rqE '^import Mathlib' HexRowReduce conformance bench 2>/dev/null; then echo "ERROR: a source file imports Mathlib"; exit 1; fi echo "Mathlib-free OK" - name: Save Lake build outputs @@ -1562,6 +1574,9 @@ workflows: .lake/build .lake/packages/Hex*/.lake/build .lake/packages/hex-test-kit/.lake/build + bench/.lake/build + bench/.lake/packages/Hex*/.lake/build + bench/.lake/packages/hex-test-kit/.lake/build conformance/.lake/build conformance/.lake/packages/Hex*/.lake/build conformance/.lake/packages/hex-test-kit/.lake/build diff --git a/scripts/release/released.yml b/scripts/release/released.yml index 443c07ef3..374ce2b3e 100644 --- a/scripts/release/released.yml +++ b/scripts/release/released.yml @@ -350,10 +350,10 @@ repos: lib: HexRowReduce umbrella: true spec: hex-row-reduce - bench: false + bench: true conformance: true fixtures: [HexRowReduce] - oracles: [matrix_flint.py, common.py] + oracles: [matrix_flint.py, common.py, flint_bench_driver.py] pins: [hex-basic, hex-matrix] lakefile: toml