Repository navigation
Releases
0.4.4
[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.
0.4.3
0.4.2
0.4.1
0.4.0
[0.4.0] - 2026-05-21
New
-
try_newconstructors return errors on wrong parameters,
newconstructors panic. -
constgetters.
Changed
-
Error diagnostics has been made uniform.
-
NegativeBinomial::solve_trials->NegativeBinomial::solve_r. -
cdflib::special::GammaError->cdflib::special::GammaDomainError
to avoid clash withcdflib::GammaError. -
distributionmodule was renameddist. -
Lowered MSRV to 1.71 and switched to Rust 2021 edition.
-
Shortened names of error variants.
-
inverse_sfis no longer a trait method. -
"Survival function" -> "Complementary cumulative distribution function".
Fixed
-
Fixed erratic behavior at endpoints 0 and 1.
-
Restored accuracy selection for
gamma_incviagamma_inc_with_acc. -
Solvers now take P and Q instead of computing Q = 1 - P.