pub fn ldl_ltsolve<N, I, V: ?Sized>(l: &CsMatViewI<N, I>, x: &mut V)
where N: Clone + Copy + Num,
      I: SpIndex,
      V: IndexMut<usize, Output = N>
{
    for (outer_ind, vec) in l.outer_iterator().enumerate().rev() {
        let mut x_outer = x[outer_ind];
        for (inner_ind, &value) in vec.iter() {
            x_outer = x_outer - value * x[inner_ind];
        }
        x[outer_ind] = x_outer;
    }
}
/// Triangular transposed solve specialized on lower triangular matrices
/// produced by ldlt (diagonal terms are omitted and assumed to be 1).
Triangular transposed solve specialized on lower triangular matrices
produced by ldlt (diagonal terms are omitted and assumed to be 1).
Triangular transposed solve specialized on lower triangular matrices produced by ldlt ( diagonal terms are omitted and assumed to be 1 ) .
pub fn ldl_ltsolve<N, I, V: ?Sized>(l: &CsMatViewI<N, I>, x: &mut V)
where N: Clone + Copy + Num,
      I: SpIndex,
      V: IndexMut<usize, Output = N>
{
    for (outer_ind, vec) in l.outer_iterator().enumerate().rev() {
        let mut x_outer = x[outer_ind];
        for (inner_ind, &value) in vec.iter() {
            x_outer = x_outer - value * x[inner_ind];
        }
        x[outer_ind] = x_outer;
    }
}
pub fn ldl_ltsolve < N , I , V : ? Sized > ( l : & CsMatViewI < N , I > , x : & mut V ) where N : Clone + Copy + Num , I : SpIndex , V : IndexMut < usize , Output = N > { for ( outer_ind , vec ) in l . outer_iterator ( ) . enumerate ( ) . rev ( ) { let mut x_outer = x [ outer_ind ] ; for ( inner_ind , & value ) in vec . iter ( ) { x_outer = x_outer - value * x [ inner_ind ] ; } x [ outer_ind ] = x_outer ; } }
Triangular transposed solve specialized on lower triangular matrices
produced by ldlt (diagonal terms are omitted and assumed to be 1).
Triangular transposed solve specialized on lower triangular matrices produced by ldlt ( diagonal terms are omitted and assumed to be 1 ) .
l
&CsMatViewI<N, I>
x
&mut V
l
&CsMatViewI<N, I>
x
&mut V