Skip to content

Multiset egraph - #52

Merged
folivetti merged 201 commits into
mainfrom
multiset-egraph
Oct 2, 2026
Merged

folivetti merged 201 commits into
mainfrom
multiset-egraph

Conversation

@folivetti

Copy link
Copy Markdown
Owner

No description provided.

…own)

Each offspring runs an independent 1-iteration eqsat on a shared e-graph. The
mark-on-attempt _seenMatches set was never cleared, so it grew with the whole
graph and every n-ary matcher call rebuilt the O(seen) exclude list from it,
making per-generation eqsat time scale linearly with graph size (the GP loop
got progressively slower every ~5 iterations).

Clear _seenMatches between offspring in evolve and evolveDB. Measured ~13x
faster on the 20-gen/2000-pop benchmark (51s vs >10min timeout) with preserved
eqsat merge density.
- Map MSE/LOG10/MAE/MAPE/Pinball to LeastSquares distribution instead of
  defaulting to Gaussian (which adds spurious sigma parameter)
- Switch from Constrained to Bates profile method for more robust CIs
- Use showNA for NaN/Inf CI values in CSV output
- Fix csvHeader to use actualMaxP from Pareto front walk
- Add computeMaxP to find actual max parameter count across Pareto front
- Add ../srtree-db to cabal.project for local builds
@folivetti
folivetti merged commit 87fd490 into main Oct 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants