Why
mechanism_crossover_budget is an honest stub: it raises NotImplementedError and must never return a fabricated intersection. The naive power-law intersection is already implemented and is known to go blind under saturation. That limitation is a result, not a bug.
What to do
Before writing code:
- Write the statistical/physical specification: inputs from muP/parameterization, the equation for a crossover budget, and when it should return
None.
- List required logged fields beyond the current schema.
- State how it will be tested on
saturation_crossover vs clean_crossover.
- Only then implement, keeping the naive predictor unchanged.
Acceptance
Files
asla/analysis/crossover.py
tests/test_predictors.py
Do not fabricate
- Return a numeric guess, interpolation, or copied naive root from the stub
Why
mechanism_crossover_budgetis an honest stub: it raisesNotImplementedErrorand must never return a fabricated intersection. The naive power-law intersection is already implemented and is known to go blind under saturation. That limitation is a result, not a bug.What to do
Before writing code:
None.saturation_crossovervsclean_crossover.Acceptance
Noneon the saturating pairFiles
asla/analysis/crossover.pytests/test_predictors.pyDo not fabricate