pub fn compute_svd(
    knots: &Knots,
    Nmat: &MatD,
    penalization: &Option<Penalization>,
    calculate_finite_difference_matrix: Box<dyn FnOnce(usize, &Knots) -> MatD>
) -> Result<SVD<f64, Dyn, Dyn>, FitError>