40 typename T::formula_type;
43 typename T::problem_type;
45 requires std::is_same_v<
typename T::formula_type::problem_type,
46 typename T::problem_type>;
48 typename T::variable_type;
49 requires std::is_same_v<
typename T::problem_type::variable_type,
50 typename T::variable_type>;
52 typename T::scalar_type;
53 requires std::is_same_v<
typename T::problem_type::scalar_type,
54 typename T::scalar_type>;
56 requires requires() { T(); };
58 requires requires(T& obj) { obj.init(); };
60 requires requires(T& obj,
typename T::scalar_type& step_size,
61 const typename T::variable_type& variable,
62 const typename T::variable_type& error) {
64 obj.check_and_calc_next(step_size, variable, error)
69 T& obj,
const step_size_limits<typename T::scalar_type>& limits) {
73 requires requires(
const T& obj) {
77 step_size_limits<typename T::scalar_type>>;
81 T& obj,
const error_tolerances<typename T::variable_type>& tolerances) {
82 obj.tolerances(tolerances);
85 requires requires(
const T& obj) {
89 error_tolerances<typename T::variable_type>>;