35 typename T::scalar_type;
38 typename T::data_type;
41 requires std::is_same_v<
typename T::scalar_type,
42 typename Eigen::NumTraits<typename T::data_type::Scalar>::Real>;
44 requires requires(T& solver,
const typename T::scalar_type& param,
45 typename T::data_type& solution) { solver.solve(param, solution); };
47 requires requires(
const T& solver) {
51 requires requires(
const T& solver) {
53 solver.param_search_region()
55 std::pair<typename T::scalar_type, typename T::scalar_type>>;
58 requires requires(
const T& solver,
const typename T::data_type& solution) {
60 solver.residual_norm(solution)
64 requires requires(
const T& solver,
const typename T::data_type& solution) {
66 solver.regularization_term(solution)
70 requires requires(T& solver,
const typename T::data_type& data) {
71 solver.change_data(data);