pub fn compute_gr_update(
    a: &CsrMatrix<f64>,
    residue: &DVector<f64>,
    x: &mut DVector<f64>,
    a_r: &mut DVector<f64>
)