diff --git a/CHANGELOG.md b/CHANGELOG.md index 2992f26f..a4197a72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,60 @@ # Changelog + 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). -## [Unreleased] +## [0.18.0] - 2024-12-02 + +### ✨ Added +- Added more inverse cumulative distribution functions. +- Introduced feature flags: `rand` and `nalgebra`. +- Added the `std_dev` method to the `Distribution` trait explicitly. +- Supported sampling integers from discrete distributions. +- Added support for the Gumbel distribution. + +### ⚠️ Breaking Changes +- Migrated multivariate distributions to generic dimensions. +- Replaced `StatsError` with module-level error types in `distribution` and its children. +- Changed `checked_logit`, `checked_multinomial`, and similar methods to return `Option` to handle invalid inputs. +- Changed `Chi` distribution to use `u64` for degrees of freedom. + +### 🛠️ Changed +- Upgraded `nalgebra` to version 0.33. + - Upgrades MSRV to 1.65+ +- Improved documentation and added examples (e.g., for Hypergeometric distribution). +- Added MSRV (Minimum Supported Rust Version) metadata to `Cargo.toml` and documentation. +- Introduced coverage reporting with `llvm-cov`. +- Updated CI to check all feature combinations and ensure MSRV compliance. +- Added an MSRV badge to `crates.io`. + +### ✅ Fixed +- Corrected formatting issues in documentation. +- Fixed several `rustdoc` warnings. +- Expanded test coverage for Dirichlet and Multinomial distributions. +- Improved ergonomics at cli for tests and ensured compatibility with updated NIST data. + +### ❌ Removed +- Replaced `StatsError` with module-level error types. +- Deprecated the `error` module and preformatted NIST data. +- Removed `rustfmt.toml` as part of CI clean-up. + +### 🎉 New Contributors +- @SabrinaJewson and @alimf17 made their first contributions! + +## [0.17.1] - 2024-06-08 +### Details +#### Changed +- Release statrs version 0.17.1 by @YeungOnion + +#### Fixed +- Code in benches still needs criterion by @YeungOnion + +[unreleased]: https://github.com/YeungOnion/statrs/compare/v0.17.1..HEAD +[0.17.1]: https://github.com/YeungOnion/statrs/compare/v0.17.0..v0.17.1 + + ## [0.17.0](https://github.com/statrs-dev/statrs/compare/v0.16.0...v0.17.0) - 2024-05-30 @@ -90,7 +140,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Removes the `Distribution` trait in favor of the `rand::distributions::Distribution` trait - Removed functions deprecated in `0.8.0` (`periodic`, `periodic_custom`, `sinusoidal`, `sinusoidal_custom`) -## [v0.9.0](https://www.github.com/statrs-dev/statrs/compare/v0.16.0...v0.17.0) +## [v0.9.0](https://www.github.com/statrs-dev/statrs/compare/v0.8.0...v0.9.0) - implemented infinite sequence generator for periodic sequence - implemented infinite sequence generator for sinusoidal sequence @@ -102,7 +152,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Implemented `Entropy` trait for the `Categorical` distribution - Add a `checked_` interface to all distribution methods and functions that may panic -## [v0.8.0](https://www.github.com/statrs-dev/statrs/compare/v0.16.0...v0.17.0) +## [v0.8.0](https://www.github.com/statrs-dev/statrs/compare/v0.7.0...v0.8.0) - `cdf(x)`, `pdf(x)` and `pmf(x)` now return the correct value instead of panicking when `x` is outside the range of values that the distribution can attain. - Fixed a bug in the `Uniform` distribution implementation where samples were drawn from range `[min, max + 1)` instead of `[min, max]`. The samples are now drawn correctly from the range `[min, max]`. @@ -146,7 +196,7 @@ Since the regression affects a very slim edge-case and the fix is very simple, n - Implemented `Multinomial` distribution - New `InverseCDF` trait for distributions that implement the inverse cdf function -## [v0.6.0](https://www.github.com/statrs-dev/statrs/compare/v0.16.0...v0.17.0) +## [v0.6.0](https://www.github.com/statrs-dev/statrs/compare/v0.5.1...v0.6.0) - `gamma::gamma_ur`, `gamma::gamma_ui`, `gamma::gamma_lr`, and `gamma::gamma_li` now follow strict gamma function domain, panicking if `a` or `x` are not in `(0, +inf)` - `beta::beta_reg` no longer allows `0.0` for `a` or `b` arguments diff --git a/Cargo.toml b/Cargo.toml index faca884c..b9e798e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "statrs" -version = "0.17.1" +version = "0.18.0" authors = ["Michael Ma"] description = "Statistical computing library for Rust" license = "MIT"