pub fn modify(&mut self, mut l: usize, mut r: usize, f: &T::F) {
        l += self.d.len();
        r += self.d.len();
        let (l0, r0) = (l, r);
        self.push(l0);
        self.push(r0);
        while l <= r {
            if l & 1 == 1 {
                self.apply(l, f);
                l += 1;
            }
            if r & 1 == 0 {
                self.apply(r, f);
                r -= 1;
            }
            l >>= 1;
            r >>= 1;
        }
        self.pull(l0);
        self.pull(r0);
    }
/// Applies the endomorphism f to all entries from l to r, inclusive.
///
/// # Panics
///
/// Panics if l or r is out of range.
Applies the endomorphism f to all entries from l to r, inclusive.
Applies the endomorphism f to all entries from l to r inclusive .
pub fn modify(&mut self, mut l: usize, mut r: usize, f: &T::F) {
        l += self.d.len();
        r += self.d.len();
        let (l0, r0) = (l, r);
        self.push(l0);
        self.push(r0);
        while l <= r {
            if l & 1 == 1 {
                self.apply(l, f);
                l += 1;
            }
            if r & 1 == 0 {
                self.apply(r, f);
                r -= 1;
            }
            l >>= 1;
            r >>= 1;
        }
        self.pull(l0);
        self.pull(r0);
    }
pub fn modify ( & mut self , mut l : usize , mut r : usize , f : & T :: F ) { l += self . d . len ( ) ; r += self . d . len ( ) ; let ( l0 , r0 ) = ( l , r ) ; self . push ( l0 ) ; self . push ( r0 ) ; while l <= r { if l & 1 == 1 { self . apply ( l , f ) ; l += 1 ; } if r & 1 == 0 { self . apply ( r , f ) ; r -= 1 ; } l >>= 1 ; r >>= 1 ; } self . pull ( l0 ) ; self . pull ( r0 ) ; }
Applies the endomorphism f to all entries from l to r, inclusive.
Applies the endomorphism f to all entries from l to r inclusive .
&mut self
l
usize
r
usize
f
&T::F
&mut self
l
usize
r
usize
f
&T::F
panics
Panics if l or r is out of range.
Panics if l or r is out of range .