pub struct RangeUpdateRangeFoldSqrtDecomposition<M>where
M: Monoid,{
_marker: PhantomData<fn() -> M>,
}Fields§
§_marker: PhantomData<fn() -> M>Trait Implementations§
Source§impl<M> SqrtDecomposition for RangeUpdateRangeFoldSqrtDecomposition<M>where
M: Monoid,
impl<M> SqrtDecomposition for RangeUpdateRangeFoldSqrtDecomposition<M>where
M: Monoid,
type M = M
type B = (<M as Magma>::T, <M as Magma>::T, usize)
fn bucket(bsize: usize) -> Self::B
fn update_bucket(bucket: &mut Self::B, x: &<Self::M as Magma>::T)
fn update_cell( bucket: &mut Self::B, cell: &mut <Self::M as Magma>::T, x: &<Self::M as Magma>::T, )
fn fold_bucket(bucket: &Self::B) -> <Self::M as Magma>::T
fn fold_cell( bucket: &Self::B, cell: &<Self::M as Magma>::T, ) -> <Self::M as Magma>::T
fn sqrt_decomposition( n: usize, bucket_size: Option<usize>, ) -> SqrtDecompositionBuckets<Self>
Auto Trait Implementations§
impl<M> Freeze for RangeUpdateRangeFoldSqrtDecomposition<M>
impl<M> RefUnwindSafe for RangeUpdateRangeFoldSqrtDecomposition<M>
impl<M> Send for RangeUpdateRangeFoldSqrtDecomposition<M>
impl<M> Sync for RangeUpdateRangeFoldSqrtDecomposition<M>
impl<M> Unpin for RangeUpdateRangeFoldSqrtDecomposition<M>
impl<M> UnwindSafe for RangeUpdateRangeFoldSqrtDecomposition<M>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more