10 using FUN = std::function<bool(
const std::array<double, dim> &)>;
40 using FUN = std::function<bool(
const double)>;
41 using FUN_ARR = std::function<bool(
const std::array<double, 1> &)>;
102 success = this->
f({{x_test}});
112 if (!success)
throw std::runtime_error(
"BisectionRootFinder: search did not converge");
120 std::function<double(
double,
double)>
next_x = [](
const double x_min,
const double x_max) {
AbstractRootFinder(const FUN_ARR &f, const double abs_tol=1e-4, const int max_iter=1000)
Definition root_finding.hh:49
AbstractRootFinder(const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
Definition root_finding.hh:44
std::function< bool(const std::array< double, 1 > &)> FUN_ARR
Definition root_finding.hh:41
virtual std::array< double, 1 > search_impl()=0
uint iter
Definition root_finding.hh:67
FUN_ARR f
Definition root_finding.hh:63
std::function< bool(const double)> FUN
Definition root_finding.hh:40
void set_max_iter(const uint max_iter)
Definition root_finding.hh:56
void set_abs_tol(const double abs_tol)
Definition root_finding.hh:54
uint max_iter
Definition root_finding.hh:66
uint get_iter() const
Definition root_finding.hh:58
double abs_tol
Definition root_finding.hh:65
double search()
Definition root_finding.hh:60
Definition root_finding.hh:8
void set_abs_tol(const double abs_tol)
Definition root_finding.hh:18
FUN f
Definition root_finding.hh:27
virtual std::array< double, dim > search_impl()=0
void set_max_iter(const uint max_iter)
Definition root_finding.hh:20
std::function< bool(const std::array< double, dim > &)> FUN
Definition root_finding.hh:10
uint max_iter
Definition root_finding.hh:30
uint iter
Definition root_finding.hh:31
uint get_iter() const
Definition root_finding.hh:22
AbstractRootFinder(const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
Definition root_finding.hh:13
std::array< double, dim > search()
Definition root_finding.hh:24
double abs_tol
Definition root_finding.hh:29
Definition root_finding.hh:73
BisectionRootFinder(const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
Definition root_finding.hh:75
void set_x_max(const double x_max)
Definition root_finding.hh:81
void set_bounds(const double x_min, const double x_max)
Definition root_finding.hh:83
void set_x_min(const double x_min)
Definition root_finding.hh:80
std::function< double(double, double)> next_x
Definition root_finding.hh:120
void set_next_x(const std::function< double(double, double)> &next_x)
Definition root_finding.hh:89
double x_max
Definition root_finding.hh:118
std::array< double, 1 > search_impl() override
Definition root_finding.hh:92
double x_min
Definition root_finding.hh:117
Definition complex_math.hh:14
unsigned int uint
Definition utils.hh:22