Struct segment_tree::ops::Mul
[−]
[src]
pub struct Mul;
Each node contains the product of the interval it represents.
Trait Implementations
impl<T: Mul<Output = T> + Copy> Operation<T> for Mul
[src]
fn combine(a: &T, b: &T) -> T
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl<T: Div<Output = T> + Copy> Inverse<T> for Mul
[src]
fn uncombine(a: &mut T, b: &T)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl CommutativeOperation<u8> for Mul
[src]
impl CommutativeOperation<u16> for Mul
[src]
impl CommutativeOperation<u32> for Mul
[src]
impl CommutativeOperation<u64> for Mul
[src]
impl CommutativeOperation<i8> for Mul
[src]
impl CommutativeOperation<i16> for Mul
[src]
impl CommutativeOperation<i32> for Mul
[src]
impl CommutativeOperation<i64> for Mul
[src]
impl CommutativeOperation<usize> for Mul
[src]
impl CommutativeOperation<isize> for Mul
[src]
impl CommutativeOperation<f32> for Mul
[src]
impl CommutativeOperation<f64> for Mul
[src]
impl<T: Copy> CommutativeOperation<Wrapping<T>> for Mul where
Mul: CommutativeOperation<T>,
Wrapping<T>: Mul<Output = Wrapping<T>>,
[src]
Mul: CommutativeOperation<T>,
Wrapping<T>: Mul<Output = Wrapping<T>>,
impl Identity<u8> for Mul
[src]
impl Identity<u16> for Mul
[src]
impl Identity<u32> for Mul
[src]
impl Identity<u64> for Mul
[src]
impl Identity<i8> for Mul
[src]
impl Identity<i16> for Mul
[src]
impl Identity<i32> for Mul
[src]
impl Identity<i64> for Mul
[src]
impl Identity<f32> for Mul
[src]
impl Identity<f64> for Mul
[src]
impl Identity<usize> for Mul
[src]
impl Identity<isize> for Mul
[src]
impl<T> Identity<Wrapping<T>> for Mul where
Mul: Identity<T>,
[src]
Mul: Identity<T>,