Repository navigation
[0.4.4] - 2026-10-14
Changed
-
Every routine follows the Fortran 90 line by line, including the order of
the argument checks, so some invalid inputs (e.g., a parameter of −∞)
report a different error. -
The integer quantile of the discrete distributions brackets the answer by
doubling. -
Error messages are more descriptive and print floating-point values in
short form.
Improved
-
Fortran 90 reference tables for every kernel, regime, error exit,
cdf*
call and status, and for the iteration traces ofdinvranddzror;
tests/regenerate/coverage.shchecks that they execute every reachable
line ofcdflib.f90, andtests/regenerate/rust_branch_coverage.shthat
they take both sides of every branch of the port except those listed with
a reason. -
The code comments reproduce the Fortran 90 comments verbatim.
-
The documentation states the behavior at NaN, infinite and endpoint
arguments, the tolerances of the searches, and the precision limits of
the noncentral distributions and of the closed-form densities and masses. -
CI also runs Miri, the tests with the MSRV, semver checks, the Fortran
coverage check, and the regeneration of the reference tables.
Fixed
-
The reference is the current upstream
cdflib.f90, which calls
gamma_userinstead of the intrinsic Γ (fixed upstream after our report).
The port reproduces every reference table bit for bit, in debug and
release builds, on macOS on Apple silicon. -
Inputs on which the Fortran loops forever return NaN or an error, and the
noncentral distributions panic where the Fortran integers would overflow. -
Constructors and searches reject parameters on which the Fortran returns
meaningless values, and several inputs no longer panic. -
cdf,ccdfand the inverses are exact at the ends of the support, and
a NaN argument gives NaN. -
Densities, masses, moments and entropies no longer overflow, underflow or
lose precision for extreme parameters. -
try_gammareportsUnderflowinstead ofOverflowbelow about −171.6.