Function axis_multiplier

Source
pub fn axis_multiplier(knots: &[(i64, f64)], chapter: i64) -> f64
Expand 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.