\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.3229656994274289 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\
\mathbf{elif}\;b \le 2.044680244795305 \cdot 10^{-37}:\\
\;\;\;\;\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 r1672467 = b;
double r1672468 = -r1672467;
double r1672469 = r1672467 * r1672467;
double r1672470 = 3.0;
double r1672471 = a;
double r1672472 = r1672470 * r1672471;
double r1672473 = c;
double r1672474 = r1672472 * r1672473;
double r1672475 = r1672469 - r1672474;
double r1672476 = sqrt(r1672475);
double r1672477 = r1672468 + r1672476;
double r1672478 = r1672477 / r1672472;
return r1672478;
}
double f(double a, double b, double c) {
double r1672479 = b;
double r1672480 = -1.3229656994274289e+154;
bool r1672481 = r1672479 <= r1672480;
double r1672482 = 1.5;
double r1672483 = a;
double r1672484 = c;
double r1672485 = r1672483 * r1672484;
double r1672486 = r1672485 / r1672479;
double r1672487 = r1672482 * r1672486;
double r1672488 = r1672487 - r1672479;
double r1672489 = r1672488 - r1672479;
double r1672490 = 3.0;
double r1672491 = r1672490 * r1672483;
double r1672492 = r1672489 / r1672491;
double r1672493 = 2.044680244795305e-37;
bool r1672494 = r1672479 <= r1672493;
double r1672495 = r1672479 * r1672479;
double r1672496 = r1672491 * r1672484;
double r1672497 = r1672495 - r1672496;
double r1672498 = sqrt(r1672497);
double r1672499 = r1672498 - r1672479;
double r1672500 = r1672499 / r1672491;
double r1672501 = -1.5;
double r1672502 = r1672501 * r1672486;
double r1672503 = r1672502 / r1672491;
double r1672504 = r1672494 ? r1672500 : r1672503;
double r1672505 = r1672481 ? r1672492 : r1672504;
return r1672505;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3229656994274289e+154Initial program 60.9
Simplified60.9
Taylor expanded around -inf 10.5
if -1.3229656994274289e+154 < b < 2.044680244795305e-37Initial program 13.5
Simplified13.5
if 2.044680244795305e-37 < b Initial program 53.8
Simplified53.8
Taylor expanded around inf 19.0
Final simplification15.2
herbie shell --seed 2019154
(FPCore (a b c)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))