Skip to content

v2.10.1

@jpurnell jpurnell tagged this 05 Sep 04:02
The follow-up 2.10.0 recorded rather than fixed.

tQuantile and fQuantile bisected on their own CDFs against an absolute tolerance of
2^-40, which at a probability of 1e-8 is 9e-5 relative. That was never a tolerance to
tighten: a bisection whose stopping rule is absolute cannot resolve a tail.

Both distributions invert in closed form through the beta, which 2.10.0 had just made
accurate in both tails. Above the median the F form uses the mirrored beta, which
yields 1-x directly instead of subtracting a value near one. Both now hold the default
1e-9 round-trip tolerance rather than the root-found relaxation, verified against
scipy.stats across 272 new fixture cases from 1e-10 to 1-1e-10.

fCDF had the same cancellation and is fixed the same way: at f = 1.65e-16 with (1, 10)
degrees of freedom it returned exactly zero where the answer is 1e-8.

At f = 4.05e19 with (1, 1), scipy.stats.f.cdf saturates to exactly 1.0. The true value
is 1 - 1.0000000827e-10, which is what this returns.

No API change. 6,828 tests / 603 suites. quality-gate: 45 of 45, 0 errors, 0 warnings.
Assets 2
Loading