template<typename T>
typename T::scalar_type;
typename T::data_type;
requires std::is_same_v<typename T::scalar_type,
typename Eigen::NumTraits<typename T::data_type::Scalar>::Real>;
requires requires(T& solver, const typename T::scalar_type& param,
typename T::data_type& solution) { solver.solve(param, solution); };
requires requires(const T& solver) {
};
requires requires(const T& solver) {
{
solver.param_search_region()
} -> base::concepts::decayed_to<
std::pair<typename T::scalar_type, typename T::scalar_type>>;
};
requires requires(const T& solver, const typename T::data_type& solution) {
{
solver.residual_norm(solution)
} -> base::concepts::decayed_to<typename T::scalar_type>;
};
requires requires(const T& solver, const typename T::data_type& solution) {
{
solver.regularization_term(solution)
} -> base::concepts::decayed_to<typename T::scalar_type>;
};
requires requires(T& solver, const typename T::data_type& data) {
solver.change_data(data);
};
}
Concept of Eigen's dense matrices.