From 4e8b394ce236fa44099b519238e47f684c1c1a55 Mon Sep 17 00:00:00 2001 From: Orion Yeung <11580988+YeungOnion@users.noreply.github.com> Date: Tue, 22 Sep 2026 22:49:30 -0500 Subject: [PATCH 1/2] chore: release v0.20.0 --- CHANGELOG.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e01efc0..c0050dd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,59 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.20.0](https://github.com/statrs-dev/statrs/compare/v0.19.1...v0.20.0) - 2026-09-23 + +### Added + +- Support alloc-backed APIs in no_std ([#403](https://github.com/statrs-dev/statrs/pull/403)) + +### Fixed + +- sample Gumbel via -ln(U), not ln(-U) +- return None from Empirical::variance for a single sample +- Triangular::pdf returns NaN when mode equals min +- Finish large beta edge handling +- Preserve asymmetric beta tails +- Preserve beta values near one +- Handle extreme beta tails +- Handle beta log boundaries +- Stabilize large beta CDF +- ensure special cases evaluate only for exact inputs +- ULPs comparisons should only regard ULPs in prec module +- guard LogNormal::pdf on both ends and fix ln_pdf for extreme x +- keep the left tail of LogNormal::pdf +- Preserve gamma PDF accuracy +- use frexp for evaluating ln(a*b) +- preserve NaN for Gamma pdf(0) when rate is infinite +- Stabilize gamma PDF evaluation +- restore full precision to erf's interval constants +- Update kdtree and KDE radius +- accumulate central moments relative to the first observation +- compute FisherSnedecor pdf in log space for large freedoms +- Unblock release-plz +- make Geometric cdf(1)/inverse_cdf(p) exact and portable +- correct Geometric::inverse_cdf against its definition +- compute Hypergeometric pmf in log space for large populations + +### Other + +- [autofix.ci] apply automated fixes +- Handle p=1 in NegativeBinomial::ln_pmf like Binomial +- Fixed broken Wikipedia link and changed link so it doesn't necessarily default to English +- Cut the doc note too +- Drop the explanatory comments and split out the endpoint tests +- Allow beta tail rounding +- update prec ULPs docs for clarity around use case +- Assert directly in test_pdf_left_tail instead of collecting failures +- Cover frexp edge cases +- *(gamma)* small suite for rate*x near 1 cases +- *(doc)* clippy +- *(online)* guidance/suggestion for `merge` +- build the OnlineMoments offset tests under no_std +- Source large-freedom pdf fixtures from mpmath instead of SciPy +- *(deps)* bump actions/checkout from 4 to 7 +- drop overexplanation implementation + ## [0.19.1](https://github.com/statrs-dev/statrs/compare/v0.19.0...v0.19.1) - 2026-08-11 ### Added diff --git a/Cargo.toml b/Cargo.toml index 6e3fd32e..60a2e409 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "statrs" -version = "0.19.1" +version = "0.20.0" authors = ["Michael Ma"] description = "Statistical computing library for Rust" license = "MIT" From a85b2bd3a4e539ddf8d6c8d13bb1b3fb38f56f4e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 03:49:53 +0000 Subject: [PATCH 2/2] chore: update MSRV lockfile --- Cargo.lock.MSRV | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock.MSRV b/Cargo.lock.MSRV index 9faa9327..a975388e 100644 --- a/Cargo.lock.MSRV +++ b/Cargo.lock.MSRV @@ -709,7 +709,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "statrs" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "approx",