You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 18, 2026. It is now read-only.
- isTournament() now delegates to validate() instead of duplicating
the same O(n²) pair-checking loop (was ~15 lines of copy-paste)
- computeSlaterRanking() accepts optional pre-computed Copeland ranking
to thread through slaterExact/slaterGreedy, avoiding 2-3 redundant
computeCopelandRanking() calls during generateReport()
- generateReport() reuses the single Copeland ranking for both
findUpsets() and computeSlaterRanking()
Net effect: generateReport() drops from 4 O(n²) passes (isTournament
+ validate + Copeland in report + Copeland in Slater) to 2 (validate
+ Copeland), halving work for the common report-generation path.
0 commit comments