Skip to content

Modernize the two-phase solver - #8

Merged
tcbegley merged 6 commits into
masterfrom
port-modern-two-phase-solver
Aug 31, 2026
Merged

tcbegley merged 6 commits into
masterfrom
port-modern-two-phase-solver

Conversation

@tcbegley

Copy link
Copy Markdown
Owner

Summary

  • migrate the project to a uv/uv_build src layout with Ruff and ty tooling
  • replace the mutable model and basic coordinates with immutable coordinate, symmetry, move, and pruning-table implementations
  • add the symmetry-aware two-phase solver plus facelet parsing and formatted public helpers
  • port the complete test suite in a dedicated commit

Validation

  • just lint
  • uv run pytest (437 passed)
  • uv build

Benchmark notes

The new implementation is slower for trivial warm solves but solves a harder scramble in 0.67s where the previous implementation exceeded a 30s limit. Table generation is intentionally more expensive because it builds the added symmetry and transition tables; tables are persisted and cached in CI.

@tcbegley
tcbegley force-pushed the port-modern-two-phase-solver branch from f5b62cc to 71def84 Compare August 31, 2026 20:44
@tcbegley
tcbegley force-pushed the port-modern-two-phase-solver branch from 71def84 to 83615ae Compare August 31, 2026 20:47
@tcbegley
tcbegley merged commit a95c827 into master Aug 31, 2026
2 checks passed
@tcbegley
tcbegley deleted the port-modern-two-phase-solver branch August 31, 2026 20:56
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.

1 participant