38 double (*fn)(
double x),
45 double xa, xb, xm, x_b;
48 long s_fa, s_fb, s_fm;
76 f_bdd = 1000 * fabs(fa);
77 fm = (*fn)(xm = (xa + xb) / 2) - value;
83 else if (s_fm != s_fa) {
92 fm = (*fn)(xm = (xa + xb) / 2) - value;
95 }
while (f_abs > _zero && f_abs < f_bdd);
double zeroIntHalve(double(*fn)(double x), double value, double x_i, double x_f, double dx, double _zero)
Finds the zero of a function within a specified interval using interval halving.