13 #ifndef eli_mutil_nls_secant_method_hpp
14 #define eli_mutil_nls_secant_method_hpp
16 #include "eli/code_eli.hpp"
26 template<
typename data__>
58 template<
typename f__>
59 int find_root(data__ &root,
const f__ &fun,
const data__ &f0)
const
61 data__ x(x1), fx(fun(x1)), xm1(x2), fxm1(x2), eval, eval_abs, tmp;
66 eval_abs=std::abs(eval);
80 x-=eval*(x-xm1)/(fx-fxm1);
85 eval_abs=std::abs(eval);
bool max_iteration_reached(const iteration_type &it) const
Definition: iterative_root_base.hpp:261
Definition: secant_method.hpp:27
int find_root(data__ &root, const f__ &fun, const data__ &f0) const
Definition: secant_method.hpp:59
data__ x2
Definition: secant_method.hpp:30
bool test_converged(const iteration_type &it, const tolerance_type &relv, const tolerance_type &absv) const
Definition: iterative_root_base.hpp:256
void get_initial_guesses(data__ &xg1, data__ &xg2) const
Definition: secant_method.hpp:52
~secant_method()
Definition: secant_method.hpp:42
static const int no_root_found
Definition: iterative_root_base.hpp:156
Definition: iterative_root_base.hpp:151
void set_initial_guesses(const data__ &xg1, const data__ &xg2)
Definition: secant_method.hpp:46
data__ x1
Definition: secant_method.hpp:30
static const int max_iteration
Definition: iterative_root_base.hpp:155
secant_method()
Definition: secant_method.hpp:33
max_iteration_type::data_type iteration_type
Definition: iterative_root_base.hpp:161
static const int converged
Definition: iterative_root_base.hpp:154
secant_method(const secant_method< data__ > &sm)
Definition: secant_method.hpp:37