This document tracks the ongoing work to speed-up girth and then integrate those gains into loop_modulus while keeping both GitHub repositories clean and easy to collaborate on.
- Standardise tooling (pytest, coverage, black/ruff, pre-commit)
- Add GitHub Actions workflow
- Protect
masterwith branch protection rules on GitHub (manual) - Freeze current public API; baseline tests recorded
| Graph | Size | Mean time (s) |
|---|---|---|
| Grid | 10×10 | 0.013 |
| Grid | 20×20 | 0.044 |
| Grid | 30×30 | 0.108 |
| Spatial | 50 | 0.027 |
| Spatial | 100 | 0.125 |
| Spatial | 150 | 0.312 |
Detailed cProfile outputs are in profiling_results/.
- Refactor hot loops (edge iteration optimised — confirmed gains)
- Evaluate heap implementations → heapdict shows no benefit on 1k-node graphs (see docs/benchmark_large_graphs.md)
- Integrate compiled Fibonacci heap or move Dijkstra relaxations to Cython
- Switch to faster heap/heapdict (experiment showed no gain)
- Scaffold HybridMWC framework (done)
- Optional Cython/C++ extension
Maintain this file as the single source of truth for dev progress.