pub trait SparseLinearSolver {
// Required methods
fn solve(
&mut self,
residuals: &Mat<f64>,
jacobians: &SparseColMat<usize, f64>,
) -> Option<Mat<f64>>;
fn solve_jtj(
&mut self,
jtr: &Mat<f64>,
jtj: &SparseColMat<usize, f64>,
) -> Option<Mat<f64>>;
}