Skip to content

Commit 7540326

Browse files
authored
Merge pull request #49 from rust-random/push-kzzruutkmsxs
Add PR links to the CHANGELOG
2 parents be28239 + a101e4e commit 7540326

File tree

1 file changed

+143
-75
lines changed

1 file changed

+143
-75
lines changed

CHANGELOG.md

Lines changed: 143 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,25 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [0.6.0] — Unreleased
8-
- Bump to MSRV 1.85.0 and Edition 2024 in line with `rand` (#27)
8+
- Bump to MSRV 1.85.0 and Edition 2024 in line with `rand` ([#27])
99

1010
### Additions
11-
- `MultiDistribution` trait to sample more efficiently from multi-dimensional distributions (#18)
12-
- `ConstMultiDistribution` trait as support for fixed-dimension distributions (#29)
11+
- `MultiDistribution` trait to sample more efficiently from multi-dimensional distributions ([#18])
12+
- `ConstMultiDistribution` trait as support for fixed-dimension distributions ([#29])
1313

1414
### Changes
15-
- Moved `Dirichlet` into the new `multi` module and implement `MultiDistribution` for it (#18)
16-
- `Dirichlet` no longer uses `const` generics, which means that its size is not required at compile time. Essentially a revert of rand#1292. (#15)
17-
- Add `Dirichlet::new_with_size` constructor (#15)
15+
- Moved `Dirichlet` into the new `multi` module and implement `MultiDistribution` for it ([#18])
16+
- `Dirichlet` no longer uses `const` generics, which means that its size is not required at compile time. Essentially a revert of rand#1292. ([#15])
17+
- Add `Dirichlet::new_with_size` constructor ([#15])
1818

1919
### Fixes
20-
- Fix `Geometric::new` for small `p > 0` where `1 - p` rounds to 1 (#36)
21-
- Use `direct-minimal-versions` (#38)
22-
- Fix panic in `FisherF::new` on almost zero parameters (#39)
23-
- Fix panic in `NormalInverseGaussian::new` with very large `alpha`; this is a Value-breaking change (#40)
24-
- Fix hang and debug assertion in `Zipf::new` on invalid parameters (#41)
25-
- Fix panic in `Binomial::sample` with `n ≥ 2^63`; this is a Value-breaking change (#43)
26-
- Error instead of producing `-inf` output for `Exp` when `lambda` is `-0.0` (#44)
20+
- Fix `Geometric::new` for small `p > 0` where `1 - p` rounds to 1 ([#36])
21+
- Use `direct-minimal-versions` ([#38])
22+
- Fix panic in `FisherF::new` on almost zero parameters ([#39])
23+
- Fix panic in `NormalInverseGaussian::new` with very large `alpha`; this is a Value-breaking change ([#40])
24+
- Fix hang and debug assertion in `Zipf::new` on invalid parameters ([#41])
25+
- Fix panic in `Binomial::sample` with `n ≥ 2^63`; this is a Value-breaking change ([#43])
26+
- Error instead of producing `-inf` output for `Exp` when `lambda` is `-0.0` ([#44])
2727

2828
## [0.5.2]
2929

@@ -44,92 +44,91 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4444
## [0.5.0] - 2025-01-27
4545

4646
### Dependencies and features
47-
- Bump the MSRV to 1.61.0 (#1207, #1246, #1269, #1341, #1416); note that 1.60.0 may work for dependents when using `--ignore-rust-version`
48-
- Update to `rand` v0.9.0 (#1558)
49-
- Rename feature `serde1` to `serde` (#1477)
47+
- Bump the MSRV to 1.61.0 ([rand#1207], [rand#1246], [rand#1269], [rand#1341], [rand#1416]); note that 1.60.0 may work for dependents when using `--ignore-rust-version`
48+
- Update to `rand` v0.9.0 ([rand#1558])
49+
- Rename feature `serde1` to `serde` ([rand#1477])
5050

5151
### API changes
52-
- Make distributions comparable with `PartialEq` (#1218)
53-
- `Dirichlet` now uses `const` generics, which means that its size is required at compile time (#1292)
54-
- The `Dirichlet::new_with_size` constructor was removed (#1292)
55-
- Add `WeightedIndexTree` (#1372, #1444)
56-
- Add `PertBuilder` to allow specification of `mean` or `mode` (#1452)
57-
- Rename `Zeta`'s parameter `a` to `s` (#1466)
58-
- Mark `WeightError`, `PoissonError`, `BinomialError` as `#[non_exhaustive]` (#1480)
59-
- Remove support for usage of `isize` as a `WeightedAliasIndex` weight (#1487)
60-
- Change parameter type of `Zipf::new`: `n` is now floating-point (#1518)
52+
- Make distributions comparable with `PartialEq` ([rand#1218])
53+
- `Dirichlet` now uses `const` generics, which means that its size is required at compile time ([rand#1292])
54+
- The `Dirichlet::new_with_size` constructor was removed ([rand#1292])
55+
- Add `WeightedIndexTree` ([rand#1372], [rand#1444])
56+
- Add `PertBuilder` to allow specification of `mean` or `mode` ([rand#1452])
57+
- Rename `Zeta`'s parameter `a` to `s` ([rand#1466])
58+
- Mark `WeightError`, `PoissonError`, `BinomialError` as `#[non_exhaustive]` ([rand#1480])
59+
- Remove support for usage of `isize` as a `WeightedAliasIndex` weight ([rand#1487])
60+
- Change parameter type of `Zipf::new`: `n` is now floating-point ([rand#1518])
6161

6262
### API changes: renames
63-
- Move `Slice` -> `slice::Choose`, `EmptySlice` -> `slice::Empty` (#1548)
64-
- Rename trait `DistString` -> `SampleString` (#1548)
65-
- Rename `DistIter` -> `Iter`, `DistMap` -> `Map` (#1548)
66-
- Move `{Weight, WeightError, WeightedIndex}` -> `weighted::{Weight, Error, WeightedIndex}` (#1548)
67-
- Move `weighted_alias::{AliasableWeight, WeightedAliasIndex}` -> `weighted::{..}` (#1548)
68-
- Move `weighted_tree::WeightedTreeIndex` -> `weighted::WeightedTreeIndex` (#1548)
63+
- Move `Slice` -> `slice::Choose`, `EmptySlice` -> `slice::Empty` ([rand#1548])
64+
- Rename trait `DistString` -> `SampleString` ([rand#1548])
65+
- Rename `DistIter` -> `Iter`, `DistMap` -> `Map` ([rand#1548])
66+
- Move `{Weight, WeightError, WeightedIndex}` -> `weighted::{Weight, Error, WeightedIndex}` ([rand#1548])
67+
- Move `weighted_alias::{AliasableWeight, WeightedAliasIndex}` -> `weighted::{..}` ([rand#1548])
68+
- Move `weighted_tree::WeightedTreeIndex` -> `weighted::WeightedTreeIndex` ([rand#1548])
6969

7070
### Testing
71-
- Add Kolmogorov Smirnov tests for distributions (#1494, #1504, #1525, #1530)
71+
- Add Kolmogorov Smirnov tests for distributions ([rand#1494], [rand#1504], [rand#1525], [rand#1530])
7272

7373
### Fixes
74-
- Fix Knuth's method so `Poisson` doesn't return -1.0 for small lambda (#1284)
75-
- Fix `Poisson` distribution instantiation so it return an error if lambda is infinite (#1291)
76-
- Fix Dirichlet sample for small alpha values to avoid NaN samples (#1209)
77-
- Fix infinite loop in `Binomial` distribution (#1325)
78-
- Fix `Pert` distribution where `mode` is close to `(min + max) / 2` (#1452)
79-
- Fix panic in Binomial (#1484)
80-
- Limit the maximal acceptable lambda for `Poisson` to solve (#1312) (#1498)
81-
- Fix bug in `Hypergeometric`, this is a Value-breaking change (#1510)
74+
- Fix Knuth's method so `Poisson` doesn't return -1.0 for small lambda ([rand#1284])
75+
- Fix `Poisson` distribution instantiation so it return an error if lambda is infinite ([rand#1291])
76+
- Fix Dirichlet sample for small alpha values to avoid NaN samples ([rand#1209])
77+
- Fix infinite loop in `Binomial` distribution ([rand#1325])
78+
- Fix `Pert` distribution where `mode` is close to `(min + max) / 2` ([rand#1452])
79+
- Fix panic in Binomial ([rand#1484])
80+
- Limit the maximal acceptable lambda for `Poisson` to solve ([rand#1312]) ([rand#1498])
81+
- Fix bug in `Hypergeometric`, this is a Value-breaking change ([rand#1510])
8282

8383
### Other changes
84-
- Remove unused fields from `Gamma`, `NormalInverseGaussian` and `Zipf` distributions (#1184)
84+
- Remove unused fields from `Gamma`, `NormalInverseGaussian` and `Zipf` distributions ([rand#1184])
8585
This breaks serialization compatibility with older versions.
86-
- Add plots for `rand_distr` distributions to documentation (#1434)
87-
- Move some of the computations in Binomial from `sample` to `new` (#1484)
88-
- Reimplement `Poisson`'s rejection method to improve performance and correct sampling inaccuracies for large lambda values, this is a Value-breaking change (#1560)
86+
- Add plots for `rand_distr` distributions to documentation ([rand#1434])
87+
- Move some of the computations in Binomial from `sample` to `new` ([rand#1484])
88+
- Reimplement `Poisson`'s rejection method to improve performance and correct sampling inaccuracies for large lambda values, this is a Value-breaking change ([rand#1560])
8989

9090
## [0.4.3] - 2021-12-30
91-
- Fix `no_std` build (#1208)
91+
- Fix `no_std` build ([rand#1208])
9292

9393
## [0.4.2] - 2021-09-18
94-
- New `Zeta` and `Zipf` distributions (#1136)
95-
- New `SkewNormal` distribution (#1149)
96-
- New `Gumbel` and `Frechet` distributions (#1168, #1171)
94+
- New `Zeta` and `Zipf` distributions ([rand#1136])
95+
- New `SkewNormal` distribution ([rand#1149])
96+
- New `Gumbel` and `Frechet` distributions ([rand#1168], [rand#1171])
9797

9898
## [0.4.1] - 2021-06-15
99-
- Empirically test PDF of normal distribution (#1121)
100-
- Correctly document `no_std` support (#1100)
101-
- Add `std_math` feature to prefer `std` over `libm` for floating point math (#1100)
102-
- Add mean and std_dev accessors to Normal (#1114)
103-
- Make sure all distributions and their error types implement `Error`, `Display`, `Clone`,
104-
`Copy`, `PartialEq` and `Eq` as appropriate (#1126)
105-
- Port benchmarks to use Criterion crate (#1116)
106-
- Support serde for distributions (#1141)
99+
- Empirically test PDF of normal distribution ([rand#1121])
100+
- Correctly document `no_std` support ([rand#1100])
101+
- Add `std_math` feature to prefer `std` over `libm` for floating point math ([rand#1100])
102+
- Add mean and std_dev accessors to Normal ([rand#1114])
103+
- Make sure all distributions and their error types implement `Error`, `Display`, `Clone`, `Copy`, `PartialEq` and `Eq` as appropriate ([rand#1126])
104+
- Port benchmarks to use Criterion crate ([rand#1116])
105+
- Support serde for distributions ([rand#1141])
107106

108107
## [0.4.0] - 2020-12-18
109108
- Bump `rand` to v0.8.0
110-
- New `Geometric`, `StandardGeometric` and `Hypergeometric` distributions (#1062)
111-
- New `Beta` sampling algorithm for improved performance and accuracy (#1000)
112-
- `Normal` and `LogNormal` now support `from_mean_cv` and `from_zscore` (#1044)
113-
- Variants of `NormalError` changed (#1044)
109+
- New `Geometric`, `StandardGeometric` and `Hypergeometric` distributions ([rand#1062])
110+
- New `Beta` sampling algorithm for improved performance and accuracy ([rand#1000])
111+
- `Normal` and `LogNormal` now support `from_mean_cv` and `from_zscore` ([rand#1044])
112+
- Variants of `NormalError` changed ([rand#1044])
114113

115114
## [0.3.0] - 2020-08-25
116-
- Move alias method for `WeightedIndex` from `rand` (#945)
117-
- Rename `WeightedIndex` to `WeightedAliasIndex` (#1008)
118-
- Replace custom `Float` trait with `num-traits::Float` (#987)
119-
- Enable `no_std` support via `num-traits` math functions (#987)
120-
- Remove `Distribution<u64>` impl for `Poisson` (#987)
121-
- Tweak `Dirichlet` and `alias_method` to use boxed slice instead of `Vec` (#987)
122-
- Use whitelist for package contents, reducing size by 5kb (#983)
123-
- Add case `lambda = 0` in the parametrization of `Exp` (#972)
124-
- Implement inverse Gaussian distribution (#954)
125-
- Reformatting and use of `rustfmt::skip` (#926)
126-
- All error types now implement `std::error::Error` (#919)
127-
- Re-exported `rand::distributions::BernoulliError` (#919)
128-
- Add value stability tests for distributions (#891)
115+
- Move alias method for `WeightedIndex` from `rand` ([rand#945])
116+
- Rename `WeightedIndex` to `WeightedAliasIndex` ([rand#1008])
117+
- Replace custom `Float` trait with `num-traits::Float` ([rand#987])
118+
- Enable `no_std` support via `num-traits` math functions ([rand#987])
119+
- Remove `Distribution<u64>` impl for `Poisson` ([rand#987])
120+
- Tweak `Dirichlet` and `alias_method` to use boxed slice instead of `Vec` ([rand#987])
121+
- Use whitelist for package contents, reducing size by 5kb ([rand#983])
122+
- Add case `lambda = 0` in the parametrization of `Exp` ([rand#972])
123+
- Implement inverse Gaussian distribution ([rand#954])
124+
- Reformatting and use of `rustfmt::skip` ([rand#926])
125+
- All error types now implement `std::error::Error` ([rand#919])
126+
- Re-exported `rand::distributions::BernoulliError` ([rand#919])
127+
- Add value stability tests for distributions ([rand#891])
129128

130129
## [0.2.2] - 2019-09-10
131-
- Fix version requirement on rand lib (#847)
132-
- Clippy fixes & suppression (#840)
130+
- Fix version requirement on rand lib ([rand#847])
131+
- Clippy fixes & suppression ([rand#840])
133132

134133
## [0.2.1] - 2019-06-29
135134
- Update dependency to support Rand 0.7
@@ -146,3 +145,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
146145

147146
## [0.1.0] - 2019-06-06
148147
Initial release. This is equivalent to the code in `rand` 0.6.5.
148+
149+
[#15]: https://github.com/rust-random/rand_distr/pull/15
150+
[#18]: https://github.com/rust-random/rand_distr/pull/18
151+
[#27]: https://github.com/rust-random/rand_distr/pull/27
152+
[#29]: https://github.com/rust-random/rand_distr/pull/29
153+
[#36]: https://github.com/rust-random/rand_distr/pull/36
154+
[#38]: https://github.com/rust-random/rand_distr/pull/38
155+
[#39]: https://github.com/rust-random/rand_distr/pull/39
156+
[#40]: https://github.com/rust-random/rand_distr/pull/40
157+
[#41]: https://github.com/rust-random/rand_distr/pull/41
158+
[#43]: https://github.com/rust-random/rand_distr/pull/43
159+
[#44]: https://github.com/rust-random/rand_distr/pull/44
160+
[rand#840]: https://github.com/rust-random/rand/pull/840
161+
[rand#847]: https://github.com/rust-random/rand/pull/847
162+
[rand#891]: https://github.com/rust-random/rand/pull/891
163+
[rand#919]: https://github.com/rust-random/rand/pull/919
164+
[rand#926]: https://github.com/rust-random/rand/pull/926
165+
[rand#945]: https://github.com/rust-random/rand/pull/945
166+
[rand#954]: https://github.com/rust-random/rand/pull/954
167+
[rand#972]: https://github.com/rust-random/rand/pull/972
168+
[rand#983]: https://github.com/rust-random/rand/pull/983
169+
[rand#987]: https://github.com/rust-random/rand/pull/987
170+
[rand#1000]: https://github.com/rust-random/rand/pull/1000
171+
[rand#1008]: https://github.com/rust-random/rand/pull/1008
172+
[rand#1044]: https://github.com/rust-random/rand/pull/1044
173+
[rand#1062]: https://github.com/rust-random/rand/pull/1062
174+
[rand#1100]: https://github.com/rust-random/rand/pull/1100
175+
[rand#1114]: https://github.com/rust-random/rand/pull/1114
176+
[rand#1116]: https://github.com/rust-random/rand/pull/1116
177+
[rand#1121]: https://github.com/rust-random/rand/pull/1121
178+
[rand#1126]: https://github.com/rust-random/rand/pull/1126
179+
[rand#1136]: https://github.com/rust-random/rand/pull/1136
180+
[rand#1141]: https://github.com/rust-random/rand/pull/1141
181+
[rand#1149]: https://github.com/rust-random/rand/pull/1149
182+
[rand#1168]: https://github.com/rust-random/rand/pull/1168
183+
[rand#1171]: https://github.com/rust-random/rand/pull/1171
184+
[rand#1184]: https://github.com/rust-random/rand/pull/1184
185+
[rand#1207]: https://github.com/rust-random/rand/pull/1207
186+
[rand#1208]: https://github.com/rust-random/rand/pull/1208
187+
[rand#1209]: https://github.com/rust-random/rand/pull/1209
188+
[rand#1218]: https://github.com/rust-random/rand/pull/1218
189+
[rand#1246]: https://github.com/rust-random/rand/pull/1246
190+
[rand#1269]: https://github.com/rust-random/rand/pull/1269
191+
[rand#1284]: https://github.com/rust-random/rand/pull/1284
192+
[rand#1291]: https://github.com/rust-random/rand/pull/1291
193+
[rand#1292]: https://github.com/rust-random/rand/pull/1292
194+
[rand#1312]: https://github.com/rust-random/rand/pull/1312
195+
[rand#1325]: https://github.com/rust-random/rand/pull/1325
196+
[rand#1341]: https://github.com/rust-random/rand/pull/1341
197+
[rand#1372]: https://github.com/rust-random/rand/pull/1372
198+
[rand#1416]: https://github.com/rust-random/rand/pull/1416
199+
[rand#1434]: https://github.com/rust-random/rand/pull/1434
200+
[rand#1444]: https://github.com/rust-random/rand/pull/1444
201+
[rand#1452]: https://github.com/rust-random/rand/pull/1452
202+
[rand#1466]: https://github.com/rust-random/rand/pull/1466
203+
[rand#1477]: https://github.com/rust-random/rand/pull/1477
204+
[rand#1480]: https://github.com/rust-random/rand/pull/1480
205+
[rand#1484]: https://github.com/rust-random/rand/pull/1484
206+
[rand#1487]: https://github.com/rust-random/rand/pull/1487
207+
[rand#1494]: https://github.com/rust-random/rand/pull/1494
208+
[rand#1498]: https://github.com/rust-random/rand/pull/1498
209+
[rand#1504]: https://github.com/rust-random/rand/pull/1504
210+
[rand#1510]: https://github.com/rust-random/rand/pull/1510
211+
[rand#1518]: https://github.com/rust-random/rand/pull/1518
212+
[rand#1525]: https://github.com/rust-random/rand/pull/1525
213+
[rand#1530]: https://github.com/rust-random/rand/pull/1530
214+
[rand#1548]: https://github.com/rust-random/rand/pull/1548
215+
[rand#1558]: https://github.com/rust-random/rand/pull/1558
216+
[rand#1560]: https://github.com/rust-random/rand/pull/1560

0 commit comments

Comments
 (0)