19#ifndef CUBIC_MAX_ITERS
20#define CUBIC_MAX_ITERS 100
22#ifndef CUBIC_ROOT_EPSILON
23#define CUBIC_ROOT_EPSILON 1e-10
64reduced_cubic_real_root(
double b,
double c,
double d)
84 double t4 = sqrt(t1 - t2) / 3.0;
86 double fx = cl * (cl * (cl + b) + c) + d;
96 int i = CUBIC_MAX_ITERS;
98 double fx = r0 * (r0 * (r0 + b) + c) + d;
99 double dx = fx / (r0 * (3 * r0 + 2 * b) + c);
103 if (fabs(fx) < CUBIC_ROOT_EPSILON || fabs(dx) < CUBIC_ROOT_EPSILON) {