40 typename T::scalar_type;
43 typename T::data_type;
46 requires std::is_same_v<
typename T::scalar_type,
47 typename Eigen::NumTraits<typename T::data_type::Scalar>::Real>;
49 requires requires(T& solver,
const typename T::scalar_type& param,
50 typename T::data_type& solution) { solver.solve(param, solution); };
52 requires requires(T& solver,
const typename T::scalar_type& param) {
54 solver.residual_norm(param)
57 solver.regularization_term(param)
61 solver.first_derivative_of_residual_norm(param)
64 solver.first_derivative_of_regularization_term(param)
68 solver.second_derivative_of_residual_norm(param)
71 solver.second_derivative_of_regularization_term(param)
75 solver.sum_of_filter_factor(param)
81 solver.param_search_region()
83 std::pair<typename T::scalar_type, typename T::scalar_type>>;
86 solver.l_curve_curvature(param)