pub struct VecHistogram<A, V> { /* private fields */ }
Expand description
A Histogram that stores its values in a Vec.
See crate::ndhistogram for examples of its use.
Implementations§
Source§impl<A: Axis, V: Default + Clone> VecHistogram<A, V>
impl<A: Axis, V: Default + Clone> VecHistogram<A, V>
Sourcepub fn new(axes: A) -> Self
pub fn new(axes: A) -> Self
Factory method for VecHistogram. It is recommended to use the ndhistogram macro instead.
Trait Implementations§
Source§impl<A: Axis + PartialEq + Clone, V> Add<&VecHistogram<A, V>> for &VecHistogram<A, V>
impl<A: Axis + PartialEq + Clone, V> Add<&VecHistogram<A, V>> for &VecHistogram<A, V>
Source§fn add(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn add(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, returning a copy, and leaving the original histograms intact.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (&hist1 + &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &3.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
+
operator.Source§impl<A: Axis + PartialEq, V> Add<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> Add<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn add(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn add(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, consuming the left-hand histogram and returning a new value. As this avoids making copies of the histograms, this is the recommended method to merge histograms.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (hist1 + &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &3.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
+
operator.Source§impl<A: Axis + PartialEq, V> AddAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> AddAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn add_assign(&mut self, rhs: &VecHistogram<A, V>)
fn add_assign(&mut self, rhs: &VecHistogram<A, V>)
Combine the right-hand histogram with the left-hand histogram, mutating the left-hand histogram.
§Panics
Panics if the histograms have incompatible axes. To handle this failure mode at runtime, use the non-assign version of this operation, which returns an Result.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
hist1 += &hist2;
assert_eq!(hist1.value(&0.0).unwrap(), &3.0);
Source§impl<A: Clone, V: Clone> Clone for VecHistogram<A, V>
impl<A: Clone, V: Clone> Clone for VecHistogram<A, V>
Source§fn clone(&self) -> VecHistogram<A, V>
fn clone(&self) -> VecHistogram<A, V>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<A: Default, V: Default> Default for VecHistogram<A, V>
impl<A: Default, V: Default> Default for VecHistogram<A, V>
Source§fn default() -> VecHistogram<A, V>
fn default() -> VecHistogram<A, V>
Source§impl<A: Axis, V> Display for VecHistogram<A, V>
impl<A: Axis, V> Display for VecHistogram<A, V>
Source§impl<A: Axis + PartialEq + Clone, V> Div<&VecHistogram<A, V>> for &VecHistogram<A, V>
impl<A: Axis + PartialEq + Clone, V> Div<&VecHistogram<A, V>> for &VecHistogram<A, V>
Source§fn div(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn div(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, returning a copy, and leaving the original histograms intact.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (&hist1 / &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &2.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
/
operator.Source§impl<A: Axis + PartialEq, V> Div<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> Div<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn div(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn div(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, consuming the left-hand histogram and returning a new value. As this avoids making copies of the histograms, this is the recommended method to merge histograms.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (hist1 / &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &2.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
/
operator.Source§impl<A: Axis + PartialEq, V> DivAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> DivAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn div_assign(&mut self, rhs: &VecHistogram<A, V>)
fn div_assign(&mut self, rhs: &VecHistogram<A, V>)
Combine the right-hand histogram with the left-hand histogram, mutating the left-hand histogram.
§Panics
Panics if the histograms have incompatible axes. To handle this failure mode at runtime, use the non-assign version of this operation, which returns an Result.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
hist1 /= &hist2;
assert_eq!(hist1.value(&0.0).unwrap(), &2.0);
Source§impl<A: Axis, V> Histogram<A, V> for VecHistogram<A, V>
impl<A: Axis, V> Histogram<A, V> for VecHistogram<A, V>
Source§fn value(&self, coordinate: &A::Coordinate) -> Option<&V>
fn value(&self, coordinate: &A::Coordinate) -> Option<&V>
Source§fn value_at_index(&self, index: usize) -> Option<&V>
fn value_at_index(&self, index: usize) -> Option<&V>
Source§fn iter<'a>(
&'a self,
) -> Box<dyn Iterator<Item = Item<A::BinInterval, &'a V>> + 'a>
fn iter<'a>( &'a self, ) -> Box<dyn Iterator<Item = Item<A::BinInterval, &'a V>> + 'a>
Source§fn value_at_index_mut(&mut self, index: usize) -> Option<&mut V>
fn value_at_index_mut(&mut self, index: usize) -> Option<&mut V>
Source§fn values_mut(&mut self) -> Box<dyn Iterator<Item = &'_ mut V> + '_>
fn values_mut(&mut self) -> Box<dyn Iterator<Item = &'_ mut V> + '_>
Source§fn iter_mut(
&mut self,
) -> Box<dyn Iterator<Item = Item<<A as Axis>::BinInterval, &'_ mut V>> + '_>
fn iter_mut( &mut self, ) -> Box<dyn Iterator<Item = Item<<A as Axis>::BinInterval, &'_ mut V>> + '_>
Source§fn value_mut(&mut self, coordinate: &A::Coordinate) -> Option<&mut V>
fn value_mut(&mut self, coordinate: &A::Coordinate) -> Option<&mut V>
Source§fn fill(&mut self, coordinate: &A::Coordinate)where
V: Fill,
fn fill(&mut self, coordinate: &A::Coordinate)where
V: Fill,
Source§fn fill_with<D>(&mut self, coordinate: &A::Coordinate, data: D)
fn fill_with<D>(&mut self, coordinate: &A::Coordinate, data: D)
Source§fn fill_with_weighted<D, W>(
&mut self,
coordinate: &A::Coordinate,
data: D,
weight: W,
)where
V: FillWithWeighted<D, W>,
Self: Sized,
fn fill_with_weighted<D, W>(
&mut self,
coordinate: &A::Coordinate,
data: D,
weight: W,
)where
V: FillWithWeighted<D, W>,
Self: Sized,
Source§impl<'a, A: Axis, V> IntoIterator for &'a VecHistogram<A, V>
impl<'a, A: Axis, V> IntoIterator for &'a VecHistogram<A, V>
Source§impl<'a, A: Axis, V: 'a> IntoIterator for &'a mut VecHistogram<A, V>
impl<'a, A: Axis, V: 'a> IntoIterator for &'a mut VecHistogram<A, V>
Source§impl<A: Axis + PartialEq + Clone, V> Mul<&VecHistogram<A, V>> for &VecHistogram<A, V>
impl<A: Axis + PartialEq + Clone, V> Mul<&VecHistogram<A, V>> for &VecHistogram<A, V>
Source§fn mul(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn mul(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, returning a copy, and leaving the original histograms intact.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (&hist1 * &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &2.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
*
operator.Source§impl<A: Axis + PartialEq, V> Mul<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> Mul<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn mul(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn mul(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, consuming the left-hand histogram and returning a new value. As this avoids making copies of the histograms, this is the recommended method to merge histograms.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (hist1 * &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &2.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
*
operator.Source§impl<A: Axis + PartialEq, V> MulAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> MulAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn mul_assign(&mut self, rhs: &VecHistogram<A, V>)
fn mul_assign(&mut self, rhs: &VecHistogram<A, V>)
Combine the right-hand histogram with the left-hand histogram, mutating the left-hand histogram.
§Panics
Panics if the histograms have incompatible axes. To handle this failure mode at runtime, use the non-assign version of this operation, which returns an Result.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
hist1 *= &hist2;
assert_eq!(hist1.value(&0.0).unwrap(), &2.0);
Source§impl<A: Ord, V: Ord> Ord for VecHistogram<A, V>
impl<A: Ord, V: Ord> Ord for VecHistogram<A, V>
Source§fn cmp(&self, other: &VecHistogram<A, V>) -> Ordering
fn cmp(&self, other: &VecHistogram<A, V>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<A: PartialOrd, V: PartialOrd> PartialOrd for VecHistogram<A, V>
impl<A: PartialOrd, V: PartialOrd> PartialOrd for VecHistogram<A, V>
Source§impl<A: Axis + PartialEq + Clone, V> Sub<&VecHistogram<A, V>> for &VecHistogram<A, V>
impl<A: Axis + PartialEq + Clone, V> Sub<&VecHistogram<A, V>> for &VecHistogram<A, V>
Source§fn sub(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn sub(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, returning a copy, and leaving the original histograms intact.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (&hist1 - &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &1.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
-
operator.Source§impl<A: Axis + PartialEq, V> Sub<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> Sub<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn sub(self, rhs: &VecHistogram<A, V>) -> Self::Output
fn sub(self, rhs: &VecHistogram<A, V>) -> Self::Output
Combine the right-hand histogram with the left-hand histogram, consuming the left-hand histogram and returning a new value. As this avoids making copies of the histograms, this is the recommended method to merge histograms.
If the input histograms have incompatible axes, this operation will return a crate::error::BinaryOperationError.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
let combined_hist = (hist1 - &hist2).expect("Axes are compatible");
assert_eq!(combined_hist.value(&0.0).unwrap(), &1.0);
Source§type Output = Result<VecHistogram<A, V>, BinaryOperationError>
type Output = Result<VecHistogram<A, V>, BinaryOperationError>
-
operator.Source§impl<A: Axis + PartialEq, V> SubAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
impl<A: Axis + PartialEq, V> SubAssign<&VecHistogram<A, V>> for VecHistogram<A, V>
Source§fn sub_assign(&mut self, rhs: &VecHistogram<A, V>)
fn sub_assign(&mut self, rhs: &VecHistogram<A, V>)
Combine the right-hand histogram with the left-hand histogram, mutating the left-hand histogram.
§Panics
Panics if the histograms have incompatible axes. To handle this failure mode at runtime, use the non-assign version of this operation, which returns an Result.
§Examples
use ndhistogram::{Histogram, ndhistogram, axis::Uniform};
let mut hist1 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
let mut hist2 = ndhistogram!(Uniform::<f64>::new(10, -5.0, 5.0)?);
hist1.fill_with(&0.0, 2.0);
hist2.fill(&0.0);
hist1 -= &hist2;
assert_eq!(hist1.value(&0.0).unwrap(), &1.0);