summaryrefslogtreecommitdiff
path: root/rand/src/distributions/cauchy.rs
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2020-01-02 08:32:06 -0800
committerDaniel Mueller <deso@posteo.net>2020-01-02 08:32:06 -0800
commitfd091b04316db9dc5fafadbd6bdbe60b127408a9 (patch)
treef202270f7ae5cedc513be03833a26148d9b5e219 /rand/src/distributions/cauchy.rs
parent8161cdb26f98e65b39c603ddf7a614cc87c77a1c (diff)
downloadnitrocli-fd091b04316db9dc5fafadbd6bdbe60b127408a9.tar.gz
nitrocli-fd091b04316db9dc5fafadbd6bdbe60b127408a9.tar.bz2
Update nitrokey crate to 0.4.0
This change finally updates the version of the nitrokey crate that we consume to 0.4.0. Along with that we update rand_core, one of its dependencies, to 0.5.1. Further more we add cfg-if in version 0.1.10 and getrandom in version 0.1.13, both of which are now new (non-development) dependencies. Import subrepo nitrokey/:nitrokey at e81057037e9b4f370b64c0a030a725bc6bdfb870 Import subrepo cfg-if/:cfg-if at 4484a6faf816ff8058088ad857b0c6bb2f4b02b2 Import subrepo getrandom/:getrandom at d661aa7e1b8cc80b47dabe3d2135b3b47d2858af Import subrepo rand/:rand at d877ed528248b52d947e0484364a4e1ae59ca502
Diffstat (limited to 'rand/src/distributions/cauchy.rs')
-rw-r--r--rand/src/distributions/cauchy.rs42
1 files changed, 15 insertions, 27 deletions
diff --git a/rand/src/distributions/cauchy.rs b/rand/src/distributions/cauchy.rs
index feef015..0a5d149 100644
--- a/rand/src/distributions/cauchy.rs
+++ b/rand/src/distributions/cauchy.rs
@@ -8,25 +8,18 @@
// except according to those terms.
//! The Cauchy distribution.
+#![allow(deprecated)]
+#![allow(clippy::all)]
-use Rng;
-use distributions::Distribution;
+use crate::Rng;
+use crate::distributions::Distribution;
use std::f64::consts::PI;
/// The Cauchy distribution `Cauchy(median, scale)`.
///
/// This distribution has a density function:
/// `f(x) = 1 / (pi * scale * (1 + ((x - median) / scale)^2))`
-///
-/// # Example
-///
-/// ```
-/// use rand::distributions::{Cauchy, Distribution};
-///
-/// let cau = Cauchy::new(2.0, 5.0);
-/// let v = cau.sample(&mut rand::thread_rng());
-/// println!("{} is from a Cauchy(2, 5) distribution", v);
-/// ```
+#[deprecated(since="0.7.0", note="moved to rand_distr crate")]
#[derive(Clone, Copy, Debug)]
pub struct Cauchy {
median: f64,
@@ -61,7 +54,7 @@ impl Distribution<f64> for Cauchy {
#[cfg(test)]
mod test {
- use distributions::Distribution;
+ use crate::distributions::Distribution;
use super::Cauchy;
fn median(mut numbers: &mut [f64]) -> f64 {
@@ -75,30 +68,25 @@ mod test {
}
#[test]
- fn test_cauchy_median() {
+ #[cfg(not(miri))] // Miri doesn't support transcendental functions
+ fn test_cauchy_averages() {
+ // NOTE: given that the variance and mean are undefined,
+ // this test does not have any rigorous statistical meaning.
let cauchy = Cauchy::new(10.0, 5.0);
- let mut rng = ::test::rng(123);
+ let mut rng = crate::test::rng(123);
let mut numbers: [f64; 1000] = [0.0; 1000];
+ let mut sum = 0.0;
for i in 0..1000 {
numbers[i] = cauchy.sample(&mut rng);
+ sum += numbers[i];
}
let median = median(&mut numbers);
println!("Cauchy median: {}", median);
- assert!((median - 10.0).abs() < 0.5); // not 100% certain, but probable enough
- }
-
- #[test]
- fn test_cauchy_mean() {
- let cauchy = Cauchy::new(10.0, 5.0);
- let mut rng = ::test::rng(123);
- let mut sum = 0.0;
- for _ in 0..1000 {
- sum += cauchy.sample(&mut rng);
- }
+ assert!((median - 10.0).abs() < 0.4); // not 100% certain, but probable enough
let mean = sum / 1000.0;
println!("Cauchy mean: {}", mean);
// for a Cauchy distribution the mean should not converge
- assert!((mean - 10.0).abs() > 0.5); // not 100% certain, but probable enough
+ assert!((mean - 10.0).abs() > 0.4); // not 100% certain, but probable enough
}
#[test]