Trait accurate::sum::traits::SumAccumulator
[−]
[src]
pub trait SumAccumulator<F>: Add<F, Output = Self> + AddAssign<F> + From<F> + Clone { fn sum(self) -> F; fn zero() -> Self
where
F: Zero, { ... } fn absorb<I>(self, it: I) -> Self
where
I: IntoIterator<Item = F>, { ... } }
Accumulates terms of a sum
Required Methods
fn sum(self) -> F
The sum of all terms accumulated so far
Provided Methods
fn zero() -> Self where
F: Zero,
F: Zero,
Initial value for an accumulator
fn absorb<I>(self, it: I) -> Self where
I: IntoIterator<Item = F>,
I: IntoIterator<Item = F>,
Absorb the items of an iterator into the accumulator
Examples
use accurate::traits::*; use accurate::sum::Sum2; let s = Sum2::zero().absorb(vec![1.0, 2.0, 3.0]); assert_eq!(6.0f64, s.sum())
Implementors
impl<F> SumAccumulator<F> for NaiveSum<F> where
F: Float,impl<F> SumAccumulator<F> for Sum2<F> where
F: Float + TwoSum + AddAssign,impl<F, C> SumAccumulator<F> for SumK<F, C> where
F: Float + TwoSum,
C: SumAccumulator<F>,impl<F> SumAccumulator<F> for OnlineExactSum<F> where
F: Float + TwoSum + IFastSum + FloatFormat + RawExponent,