From eee87a4d45541e6a232ee4bb8d3c35efb31375de Mon Sep 17 00:00:00 2001 From: Jedrzej Stuczynski Date: Fri, 13 Dec 2019 11:23:25 +0000 Subject: [PATCH] Sampling poisson distribution --- Cargo.toml | 4 +++- src/utils/mod.rs | 1 + src/utils/poisson.rs | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/utils/poisson.rs diff --git a/Cargo.toml b/Cargo.toml index f019dbcb7f..17043400e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,12 +11,14 @@ base64 = "0.11.0" clap = "2.33.0" curve25519-dalek = "1.2.3" dirs = "2.0.2" +futures = "0.3.1" pem = "0.7.0" +rand = "0.7.2" +rand_distr = "0.2.2" reqwest = "0.9.22" serde = { version = "1.0", features = ["derive"] } sphinx = { path = "../sphinx" } sfw-provider-requests = { path = "../nym-sfw-provider/sfw-provider-requests" } -futures = "0.3.1" tokio = { version = "0.2", features = ["full"] } [dev-dependencies] diff --git a/src/utils/mod.rs b/src/utils/mod.rs index ad0049c4c2..2e504a1581 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1 +1,2 @@ pub mod bytes; +pub mod poisson; diff --git a/src/utils/poisson.rs b/src/utils/poisson.rs new file mode 100644 index 0000000000..d4991f0dd8 --- /dev/null +++ b/src/utils/poisson.rs @@ -0,0 +1,6 @@ +use rand_distr::{Distribution, Exp}; + +pub fn sample(average_delay: f64) -> f64 { + let exp = Exp::new(1.0 / average_delay).unwrap(); + exp.sample(&mut rand::thread_rng()) +}