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