\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 -1.3441037991607355 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\
\mathbf{elif}\;b \le 6.399558563329366 \cdot 10^{-17}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r1997404 = b;
double r1997405 = -r1997404;
double r1997406 = r1997404 * r1997404;
double r1997407 = 3.0;
double r1997408 = a;
double r1997409 = r1997407 * r1997408;
double r1997410 = c;
double r1997411 = r1997409 * r1997410;
double r1997412 = r1997406 - r1997411;
double r1997413 = sqrt(r1997412);
double r1997414 = r1997405 + r1997413;
double r1997415 = r1997414 / r1997409;
return r1997415;
}
double f(double a, double b, double c) {
double r1997416 = b;
double r1997417 = -1.3441037991607355e+154;
bool r1997418 = r1997416 <= r1997417;
double r1997419 = 1.5;
double r1997420 = a;
double r1997421 = c;
double r1997422 = r1997420 * r1997421;
double r1997423 = r1997422 / r1997416;
double r1997424 = r1997419 * r1997423;
double r1997425 = r1997424 - r1997416;
double r1997426 = r1997425 - r1997416;
double r1997427 = 3.0;
double r1997428 = r1997427 * r1997420;
double r1997429 = r1997426 / r1997428;
double r1997430 = 6.399558563329366e-17;
bool r1997431 = r1997416 <= r1997430;
double r1997432 = r1997416 * r1997416;
double r1997433 = r1997428 * r1997421;
double r1997434 = r1997432 - r1997433;
double r1997435 = sqrt(r1997434);
double r1997436 = r1997435 - r1997416;
double r1997437 = r1997436 / r1997428;
double r1997438 = -1.5;
double r1997439 = r1997438 * r1997423;
double r1997440 = r1997439 / r1997428;
double r1997441 = r1997431 ? r1997437 : r1997440;
double r1997442 = r1997418 ? r1997429 : r1997441;
return r1997442;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3441037991607355e+154Initial program 60.9
Simplified60.9
Taylor expanded around -inf 9.1
if -1.3441037991607355e+154 < b < 6.399558563329366e-17Initial program 14.6
Simplified14.6
if 6.399558563329366e-17 < b Initial program 54.0
Simplified54.0
Taylor expanded around inf 17.2
Final simplification14.9
herbie shell --seed 2019153
(FPCore (a b c)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))