Struct average::WeightedMean [−][src]
pub struct WeightedMean { /* fields omitted */ }
Estimate the weighted and unweighted arithmetic mean of a sequence of numbers ("population").
Example
use average::WeightedMean; let a: WeightedMean = (1..6).zip(1..6) .map(|(x, w)| (f64::from(x), f64::from(w))).collect(); println!("The weighted mean is {}.", a.mean());
Methods
impl WeightedMean
[src]
impl WeightedMean
pub fn new() -> WeightedMean
[src]
pub fn new() -> WeightedMean
Create a new weighted and unweighted mean estimator.
pub fn add(&mut self, sample: f64, weight: f64)
[src]
pub fn add(&mut self, sample: f64, weight: f64)
Add an observation sampled from the population.
pub fn is_empty(&self) -> bool
[src]
pub fn is_empty(&self) -> bool
Determine whether the sample is empty.
Might be a false positive if the sum of weights is zero.
pub fn sum_weights(&self) -> f64
[src]
pub fn sum_weights(&self) -> f64
Return the sum of the weights.
Returns 0 for an empty sample.
pub fn mean(&self) -> f64
[src]
pub fn mean(&self) -> f64
Estimate the weighted mean of the population.
Returns 0 for an empty sample.
Trait Implementations
impl Debug for WeightedMean
[src]
impl Debug for WeightedMean
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for WeightedMean
[src]
impl Clone for WeightedMean
fn clone(&self) -> WeightedMean
[src]
fn clone(&self) -> WeightedMean
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0
[src]Performs copy-assignment from source
. Read more
impl Default for WeightedMean
[src]
impl Default for WeightedMean
fn default() -> WeightedMean
[src]
fn default() -> WeightedMean
Returns the "default value" for a type. Read more
impl FromIterator<(f64, f64)> for WeightedMean
[src]
impl FromIterator<(f64, f64)> for WeightedMean
fn from_iter<T>(iter: T) -> WeightedMean where
T: IntoIterator<Item = (f64, f64)>,
[src]
fn from_iter<T>(iter: T) -> WeightedMean where
T: IntoIterator<Item = (f64, f64)>,
Creates a value from an iterator. Read more
impl<'a> FromIterator<&'a (f64, f64)> for WeightedMean
[src]
impl<'a> FromIterator<&'a (f64, f64)> for WeightedMean
fn from_iter<T>(iter: T) -> WeightedMean where
T: IntoIterator<Item = &'a (f64, f64)>,
[src]
fn from_iter<T>(iter: T) -> WeightedMean where
T: IntoIterator<Item = &'a (f64, f64)>,
Creates a value from an iterator. Read more
impl Merge for WeightedMean
[src]
impl Merge for WeightedMean
fn merge(&mut self, other: &WeightedMean)
[src]
fn merge(&mut self, other: &WeightedMean)
Merge another sample into this one.
Example
use average::{WeightedMean, Merge}; let weighted_sequence: &[(f64, f64)] = &[ (1., 0.1), (2., 0.2), (3., 0.3), (4., 0.4), (5., 0.5), (6., 0.6), (7., 0.7), (8., 0.8), (9., 0.9)]; let (left, right) = weighted_sequence.split_at(3); let avg_total: WeightedMean = weighted_sequence.iter().collect(); let mut avg_left: WeightedMean = left.iter().collect(); let avg_right: WeightedMean = right.iter().collect(); avg_left.merge(&avg_right); assert!((avg_total.mean() - avg_left.mean()).abs() < 1e-15);
Auto Trait Implementations
impl Send for WeightedMean
impl Send for WeightedMean
impl Sync for WeightedMean
impl Sync for WeightedMean