pub struct CompressedBinaryIndexedTree<M, X, Inner>where
M: Monoid,{
compress: Vec<X>,
bits: Vec<Inner>,
_marker: PhantomData<fn() -> M>,
}Fields§
§compress: Vec<X>§bits: Vec<Inner>§_marker: PhantomData<fn() -> M>Implementations§
Source§impl<M, A> CompressedBinaryIndexedTree<M, A, Tag<M>>
impl<M, A> CompressedBinaryIndexedTree<M, A, Tag<M>>
Source§impl<M, A, B> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, Tag<M>>>
impl<M, A, B> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, Tag<M>>>
pub fn new(points: &[(A, (B,))]) -> Self
fn from_iter<'a, Iter>(points: Iter) -> Self
pub fn accumulate<QA, QB>(&self, range: &(QA, (QB,))) -> M::Twhere
QA: RangeBounds<A>,
QB: RangeBounds<B>,
pub fn update(&mut self, key: &(A, (B,)), x: &M::T)
pub fn partition_point_acc<P, QB>( &self, inner_ranges: &(QB,), pred: P, ) -> (Option<&A>, M::T)
Source§impl<M, A, B, C> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, CompressedBinaryIndexedTree<M, C, Tag<M>>>>
impl<M, A, B, C> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, CompressedBinaryIndexedTree<M, C, Tag<M>>>>
pub fn new(points: &[(A, (B, (C,)))]) -> Self
fn from_iter<'a, Iter>(points: Iter) -> Self
pub fn accumulate<QA, QB, QC>(&self, range: &(QA, (QB, (QC,)))) -> M::T
pub fn update(&mut self, key: &(A, (B, (C,))), x: &M::T)
pub fn partition_point_acc<P, QB, QC>( &self, inner_ranges: &(QB, (QC,)), pred: P, ) -> (Option<&A>, M::T)
Source§impl<M, A, B, C, D> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, CompressedBinaryIndexedTree<M, C, CompressedBinaryIndexedTree<M, D, Tag<M>>>>>
impl<M, A, B, C, D> CompressedBinaryIndexedTree<M, A, CompressedBinaryIndexedTree<M, B, CompressedBinaryIndexedTree<M, C, CompressedBinaryIndexedTree<M, D, Tag<M>>>>>
pub fn new(points: &[(A, (B, (C, (D,))))]) -> Self
fn from_iter<'a, Iter>(points: Iter) -> Self
pub fn accumulate<QA, QB, QC, QD>( &self, range: &(QA, (QB, (QC, (QD,)))), ) -> M::T
pub fn update(&mut self, key: &(A, (B, (C, (D,)))), x: &M::T)
pub fn partition_point_acc<P, QB, QC, QD>( &self, inner_ranges: &(QB, (QC, (QD,))), pred: P, ) -> (Option<&A>, M::T)
Trait Implementations§
Source§impl<M, X, Inner> Clone for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> Clone for CompressedBinaryIndexedTree<M, X, Inner>
Source§impl<M, X, Inner> Debug for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> Debug for CompressedBinaryIndexedTree<M, X, Inner>
Auto Trait Implementations§
impl<M, X, Inner> Freeze for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> RefUnwindSafe for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> Send for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> Sync for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> Unpin for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> UnsafeUnpin for CompressedBinaryIndexedTree<M, X, Inner>
impl<M, X, Inner> UnwindSafe for CompressedBinaryIndexedTree<M, X, Inner>
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