pub trait AtomicHistogramVal<T> {
    fn get_bin_index<V>(&self, val: V) -> Result<usize, HistErrors>
    where
        V: Borrow<T>
; fn count_val<V>(&self, val: V) -> Result<usize, HistErrors>
    where
        V: Borrow<T>
; fn borders_clone(&self) -> Result<Vec<T, Global>, HistErrors>; fn is_inside<V>(&self, val: V) -> bool
    where
        V: Borrow<T>
; fn not_inside<V>(&self, val: V) -> bool
    where
        V: Borrow<T>
; fn first_border(&self) -> T; fn second_last_border(&self) -> T; fn distance<V>(&self, val: V) -> f64
    where
        V: Borrow<T>
; }
Expand description
  • trait used for mapping values of arbitrary type T to bins
  • used to create a histogram

Required Methods

convert val to the respective histogram index

count val. Ok(index), if inside of hist, Err(_) if val is invalid

binning borders
  • the borders used to bin the values
  • any val which fullfills self.border[i] <= val < self.border[i + 1] will get index i.
  • Note that the last border is exclusive

does a value correspond to a valid bin?

opposite of is_inside

get the left most border (inclusive)

  • get second last border from the right
  • should be the same as let b = self.borders_clone().expect("overflow"); assert_eq!(self.second_last_border(), b[b.len()-2])
calculates some sort of absolute distance to the nearest valid bin
  • any invalid numbers (like NAN or INFINITY) should have the highest distance possible
  • if a value corresponds to a valid bin, the distance should be zero

Implementors