47 template<
typename Treal>
48 inline int sign(Treal value) {
69 template<
typename Treal,
typename Tfun>
71 int sign_min =
sign(fun.eval(
min));
72 int sign_max =
sign(fun.eval(
max));
73 if (sign_min == sign_max)
74 throw Failure(
"bisection(Tfun&, Treal, Treal, Treal): interval " 76 Treal middle = (
max +
min) / 2;
77 int sign_middle =
sign(fun.eval(middle));
79 if (sign_middle == sign_min) {
81 sign_min = sign_middle;
85 sign_max = sign_middle;
88 sign_middle =
sign(fun.eval(middle));
Treal bisection(Tfun const &fun, Treal min, Treal max, Treal const tol)
Bisection algorithm for root finding.
Definition: bisection.h:70
Definition: allocate.cc:39
Treal template_blas_fabs(Treal x)
#define max(a, b)
Definition: integrator.cc:87
int min(int a, int b)
Definition: lin_trans.cc:66
int sign(Treal value)
Sign function returns the sign of the input.
Definition: bisection.h:48