13 #ifndef eli_mutil_nls_iterative_root_base_hpp
14 #define eli_mutil_nls_iterative_root_base_hpp
18 #include "eli/code_eli.hpp"
26 template<
typename data__>
104 bool converged(
const data__ &rel_val,
const data__ &abs_val)
const
109 return rel_state && abs_state;
111 return rel_state || abs_state;
115 bool compare(
const data__ &val,
const std::pair<data__, activity_state> &ref)
const
124 return (val==ref.first);
127 return (val<ref.first);
130 return (val<=ref.first);
133 return (val>ref.first);
136 return (val>=ref.first);
150 template<
typename data__>
256 bool test_converged(
const iteration_type &it,
const tolerance_type &relv,
const tolerance_type &absv)
const
virtual ~iterative_root_base()
Definition: iterative_root_base.hpp:177
const max_iteration_type & get_iteration_count_tester() const
Definition: iterative_root_base.hpp:245
void satisfy_both(bool sb)
Definition: iterative_root_base.hpp:58
bool max_iteration_reached(const iteration_type &it) const
Definition: iterative_root_base.hpp:261
const activity_state & get_absolute_tolerance_state() const
Definition: iterative_root_base.hpp:99
void set_absolute_tolerance_info(const data__ &at, const activity_state &as=less)
Definition: iterative_root_base.hpp:89
Definition: iterative_root_base.hpp:39
max_iteration_type itmax
Definition: iterative_root_base.hpp:269
convergence_tester(const convergence_tester< data__ > &ct)
Definition: iterative_root_base.hpp:49
std::pair< data__, activity_state > abs_tol_info
Definition: iterative_root_base.hpp:147
bool satisfy_both() const
Definition: iterative_root_base.hpp:69
data__ get_absolute_tolerance() const
Definition: iterative_root_base.hpp:94
void disable_relative_tolerance()
Definition: iterative_root_base.hpp:230
Definition: iterative_root_base.hpp:37
const error_tolerance_type & get_tolerance_tester() const
Definition: iterative_root_base.hpp:240
void enforce_both_tolerance(bool ebt)
Definition: iterative_root_base.hpp:220
bool test_converged(const iteration_type &it, const tolerance_type &relv, const tolerance_type &absv) const
Definition: iterative_root_base.hpp:256
Definition: iterative_root_base.hpp:36
static const int no_root_found
Definition: iterative_root_base.hpp:156
void set_relative_tolerance(const tolerance_type &rel_tol)
Definition: iterative_root_base.hpp:181
Definition: iterative_root_base.hpp:38
void set_max_iteration(const iteration_type &mi)
Definition: iterative_root_base.hpp:207
Definition: iterative_root_base.hpp:151
bool enforce_both_tolerance() const
Definition: iterative_root_base.hpp:225
error_tolerance_type conv
Definition: iterative_root_base.hpp:268
Definition: iterative_root_base.hpp:34
bool satisfy_both_flag
Definition: iterative_root_base.hpp:145
convergence_tester< size_t > max_iteration_type
Definition: iterative_root_base.hpp:159
void set_relative_tolerance_info(const data__ &rt, const activity_state &as=less)
Definition: iterative_root_base.hpp:74
bool compare(const data__ &val, const std::pair< data__, activity_state > &ref) const
Definition: iterative_root_base.hpp:115
data__ get_relative_tolerance() const
Definition: iterative_root_base.hpp:79
activity_state
Definition: iterative_root_base.hpp:32
bool converged(const data__ &rel_val, const data__ &abs_val) const
Definition: iterative_root_base.hpp:104
data__ data_type
Definition: iterative_root_base.hpp:30
void set_absolute_tolerance(const tolerance_type &abs_tol)
Definition: iterative_root_base.hpp:194
Definition: iterative_root_base.hpp:35
tolerance_type get_absolute_tolerance() const
Definition: iterative_root_base.hpp:202
Definition: iterative_root_base.hpp:27
convergence_tester< data__ > error_tolerance_type
Definition: iterative_root_base.hpp:158
iterative_root_base()
Definition: iterative_root_base.hpp:164
const activity_state & get_relative_tolerance_state() const
Definition: iterative_root_base.hpp:84
static const int max_iteration
Definition: iterative_root_base.hpp:155
tolerance_type get_relative_tolerance() const
Definition: iterative_root_base.hpp:189
iterative_root_base(const iterative_root_base< data__ > &irb)
Definition: iterative_root_base.hpp:172
error_tolerance_type::data_type tolerance_type
Definition: iterative_root_base.hpp:160
max_iteration_type::data_type iteration_type
Definition: iterative_root_base.hpp:161
virtual ~convergence_tester()
Definition: iterative_root_base.hpp:54
const iteration_type & get_iteration_count() const
Definition: iterative_root_base.hpp:250
static const int converged
Definition: iterative_root_base.hpp:154
std::pair< data__, activity_state > rel_tol_info
Definition: iterative_root_base.hpp:146
iteration_type itcnt
Definition: iterative_root_base.hpp:270
iteration_type get_max_iteration() const
Definition: iterative_root_base.hpp:215
convergence_tester()
Definition: iterative_root_base.hpp:43
void disable_absolute_tolerance()
Definition: iterative_root_base.hpp:235