Function reservoirs::utils::cdf_rng [−][src]
Expand description
take the cdf of observations over a range of discrete values
obs
is a reference to a slice of f64 values.range
is range of discrete f64 values.- Returns a vector of the cdf along range.
Examples
use reservoirs::prelude::*;
fn main() -> Result<(), ResError> {
let two = vec![1.0, 2.0];
let whole = vec![0.5, 1.0];
let four = vec![1.0, 2.0, 3.0, 4.0];
let half = vec![0.5, 1.0, 1.0, 1.0];
let quarter = vec![0.25, 0.5, 0.75, 1.0];
let three = vec![3.0, 4.0];
let third = vec![0.0, 0.0, 0.5, 1.0];
let cdf_two = utils::cdf(&two).iter().map(|(a, b)| *b).collect::<Vec<f64>>();
let cdf_four = utils::cdf(&four).iter().map(|(a, b)| *b).collect::<Vec<f64>>();
let cdf_two_of_four = utils::cdf_rng(&two, &(1..4));
let cdf_three_of_four = utils::cdf_rng(&three, &(1..4));
let thresh = 0.0001;
for i in 0..cdf_two.len() {
assert_eq!((whole[i] - cdf_two[i]) < thresh, true);
}
for i in 0..cdf_four.len() {
assert_eq!((quarter[i] - cdf_four[i]) < thresh, true);
assert_eq!((half[i] - cdf_two_of_four[i]) < thresh, true);
assert_eq!((third[i] - cdf_three_of_four[i]) < thresh, true);
}
Ok(())
}