Trait rayon::par_iter::reduce::ReduceOp
[−]
[src]
pub trait ReduceOp<T>: Sync {
fn start_value(&self) -> T;
fn reduce(&self, value1: T, value2: T) -> T;
}Specifies a "reduce operator". This is the combination of a start
value and a reduce function. The reduce function takes two items
and computes a reduced version. The start value S is a kind of
"zero" or "identity" value that may be intermingled as needed;
idealy, reduce(S, X) for any item X yields X.
Example: to sum up the values, use a start_value of 0 and a
reduce function of reduce(a, b) = a + b.
The order in which the reduce function will be applied is not
specified. For example, the input [ 0 1 2 ] might be reduced in a
sequential fashion:
reduce(reduce(reduce(S, 0), 1), 2)
or it might be reduced in a tree-like way:
reduce(reduce(0, 1), reduce(S, 2))
etc.
Required Methods
fn start_value(&self) -> T
fn reduce(&self, value1: T, value2: T) -> T
Implementors
impl ReduceOp<i8> for SumOpimpl ReduceOp<i16> for SumOpimpl ReduceOp<i32> for SumOpimpl ReduceOp<i64> for SumOpimpl ReduceOp<isize> for SumOpimpl ReduceOp<u8> for SumOpimpl ReduceOp<u16> for SumOpimpl ReduceOp<u32> for SumOpimpl ReduceOp<u64> for SumOpimpl ReduceOp<usize> for SumOpimpl ReduceOp<f32> for SumOpimpl ReduceOp<f64> for SumOpimpl ReduceOp<i8> for MulOpimpl ReduceOp<i16> for MulOpimpl ReduceOp<i32> for MulOpimpl ReduceOp<i64> for MulOpimpl ReduceOp<isize> for MulOpimpl ReduceOp<u8> for MulOpimpl ReduceOp<u16> for MulOpimpl ReduceOp<u32> for MulOpimpl ReduceOp<u64> for MulOpimpl ReduceOp<usize> for MulOpimpl ReduceOp<f32> for MulOpimpl ReduceOp<f64> for MulOpimpl ReduceOp<i8> for MinOpimpl ReduceOp<i16> for MinOpimpl ReduceOp<i32> for MinOpimpl ReduceOp<i64> for MinOpimpl ReduceOp<isize> for MinOpimpl ReduceOp<u8> for MinOpimpl ReduceOp<u16> for MinOpimpl ReduceOp<u32> for MinOpimpl ReduceOp<u64> for MinOpimpl ReduceOp<usize> for MinOpimpl ReduceOp<f32> for MinOpimpl ReduceOp<f64> for MinOpimpl ReduceOp<i8> for MaxOpimpl ReduceOp<i16> for MaxOpimpl ReduceOp<i32> for MaxOpimpl ReduceOp<i64> for MaxOpimpl ReduceOp<isize> for MaxOpimpl ReduceOp<u8> for MaxOpimpl ReduceOp<u16> for MaxOpimpl ReduceOp<u32> for MaxOpimpl ReduceOp<u64> for MaxOpimpl ReduceOp<usize> for MaxOpimpl ReduceOp<f32> for MaxOpimpl ReduceOp<f64> for MaxOpimpl<'r, ITEM, OP> ReduceOp<Option<ITEM>> for ReduceWithOp<'r, OP> where OP: Fn(ITEM, ITEM) -> ITEM + Sync + 'rimpl<'r, ITEM, OP> ReduceOp<ITEM> for ReduceWithIdentityOp<'r, ITEM, OP> where OP: Fn(ITEM, ITEM) -> ITEM + Sync, ITEM: 'r + Clone + Sync