\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le 245.5646346995640669774729758501052856445:\\
\;\;\;\;\frac{\frac{\left(b \cdot b - c \cdot \left(3 \cdot a\right)\right) - b \cdot b}{b + \sqrt{b \cdot b - c \cdot \left(3 \cdot a\right)}}}{3 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-0.5 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r3932191 = b;
double r3932192 = -r3932191;
double r3932193 = r3932191 * r3932191;
double r3932194 = 3.0;
double r3932195 = a;
double r3932196 = r3932194 * r3932195;
double r3932197 = c;
double r3932198 = r3932196 * r3932197;
double r3932199 = r3932193 - r3932198;
double r3932200 = sqrt(r3932199);
double r3932201 = r3932192 + r3932200;
double r3932202 = r3932201 / r3932196;
return r3932202;
}
double f(double a, double b, double c) {
double r3932203 = b;
double r3932204 = 245.56463469956407;
bool r3932205 = r3932203 <= r3932204;
double r3932206 = r3932203 * r3932203;
double r3932207 = c;
double r3932208 = 3.0;
double r3932209 = a;
double r3932210 = r3932208 * r3932209;
double r3932211 = r3932207 * r3932210;
double r3932212 = r3932206 - r3932211;
double r3932213 = r3932212 - r3932206;
double r3932214 = sqrt(r3932212);
double r3932215 = r3932203 + r3932214;
double r3932216 = r3932213 / r3932215;
double r3932217 = r3932216 / r3932210;
double r3932218 = -0.5;
double r3932219 = r3932207 / r3932203;
double r3932220 = r3932218 * r3932219;
double r3932221 = r3932205 ? r3932217 : r3932220;
return r3932221;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < 245.56463469956407Initial program 16.0
Simplified16.0
rmApplied flip--16.0
Simplified15.0
if 245.56463469956407 < b Initial program 35.1
Simplified35.1
Taylor expanded around inf 17.1
Final simplification16.4
herbie shell --seed 2019192
(FPCore (a b c)
:name "Cubic critical, narrow range"
:pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))