1
/* Written by Charles Harris charles.harris@sdl.usu.edu */
6
bisect(double (*f)(double, void*), double xa, double xb, double xtol, double rtol, int iter, default_parameters *params)
9
double dm,xm,fm,fa,fb,tol;
11
tol = xtol + rtol*(fabs(xa) + fabs(xb));
16
if (fa*fb > 0) {ERROR(params,SIGNERR,0.0);}
17
if (fa == 0) return xa;
18
if (fb == 0) return xb;
20
params->iterations = 0;
21
for(i=0; i<iter; i++) {
30
if (fm == 0 || fabs(dm) < tol)
33
ERROR(params,CONVERR,xa);