pub fn axis_multiplier(knots: &[(i64, f64)], chapter: i64) -> f64Expand description
Shared reader for both axes: log-space interpolation between sparse knots, held flat outside them, identity when unauthored.
The clamp is the important part. interp_geometric EXTRAPOLATES past its
last knot — a table authored to ch30 reads 5.6e14 at ch500, which would
quietly run difficulty off the end of whatever range someone happened to
author. A refit authors the bands it measured; chapters beyond them must
inherit the last authored value, not a projection of it.
A non-positive knot makes log interpolation meaningless and could zero an encounter outright, so it is rejected rather than clamped.