\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 -3.0165216367200194 \cdot 10^{+142}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \frac{c}{b}, \frac{b}{a} \cdot \frac{-2}{3}\right)\\
\mathbf{elif}\;b \le 1.4064974064077476 \cdot 10^{-77}:\\
\;\;\;\;\frac{1}{\frac{3 \cdot a}{\sqrt{\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -3\right)} - b}}\\
\mathbf{elif}\;b \le 1.56232019487653 \cdot 10^{-25}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b}\\
\mathbf{elif}\;b \le 2.8123237256202247 \cdot 10^{-16}:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -3\right) \cdot \sqrt{\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -3\right)} - \left(b \cdot b\right) \cdot b}{\mathsf{fma}\left(\sqrt{\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -3\right)}, \sqrt{\mathsf{fma}\left(b, b, \left(a \cdot c\right) \cdot -3\right)} + b, b \cdot b\right)}}{3 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r1684465 = b;
double r1684466 = -r1684465;
double r1684467 = r1684465 * r1684465;
double r1684468 = 3.0;
double r1684469 = a;
double r1684470 = r1684468 * r1684469;
double r1684471 = c;
double r1684472 = r1684470 * r1684471;
double r1684473 = r1684467 - r1684472;
double r1684474 = sqrt(r1684473);
double r1684475 = r1684466 + r1684474;
double r1684476 = r1684475 / r1684470;
return r1684476;
}
double f(double a, double b, double c) {
double r1684477 = b;
double r1684478 = -3.0165216367200194e+142;
bool r1684479 = r1684477 <= r1684478;
double r1684480 = 0.5;
double r1684481 = c;
double r1684482 = r1684481 / r1684477;
double r1684483 = a;
double r1684484 = r1684477 / r1684483;
double r1684485 = -0.6666666666666666;
double r1684486 = r1684484 * r1684485;
double r1684487 = fma(r1684480, r1684482, r1684486);
double r1684488 = 1.4064974064077476e-77;
bool r1684489 = r1684477 <= r1684488;
double r1684490 = 1.0;
double r1684491 = 3.0;
double r1684492 = r1684491 * r1684483;
double r1684493 = r1684483 * r1684481;
double r1684494 = -3.0;
double r1684495 = r1684493 * r1684494;
double r1684496 = fma(r1684477, r1684477, r1684495);
double r1684497 = sqrt(r1684496);
double r1684498 = r1684497 - r1684477;
double r1684499 = r1684492 / r1684498;
double r1684500 = r1684490 / r1684499;
double r1684501 = 1.56232019487653e-25;
bool r1684502 = r1684477 <= r1684501;
double r1684503 = -0.5;
double r1684504 = r1684503 * r1684482;
double r1684505 = 2.8123237256202247e-16;
bool r1684506 = r1684477 <= r1684505;
double r1684507 = r1684496 * r1684497;
double r1684508 = r1684477 * r1684477;
double r1684509 = r1684508 * r1684477;
double r1684510 = r1684507 - r1684509;
double r1684511 = r1684497 + r1684477;
double r1684512 = fma(r1684497, r1684511, r1684508);
double r1684513 = r1684510 / r1684512;
double r1684514 = r1684513 / r1684492;
double r1684515 = r1684506 ? r1684514 : r1684504;
double r1684516 = r1684502 ? r1684504 : r1684515;
double r1684517 = r1684489 ? r1684500 : r1684516;
double r1684518 = r1684479 ? r1684487 : r1684517;
return r1684518;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -3.0165216367200194e+142Initial program 57.6
Taylor expanded around -inf 3.0
Simplified3.0
if -3.0165216367200194e+142 < b < 1.4064974064077476e-77Initial program 11.9
rmApplied clear-num12.0
Simplified12.1
if 1.4064974064077476e-77 < b < 1.56232019487653e-25 or 2.8123237256202247e-16 < b Initial program 53.3
Taylor expanded around inf 8.2
if 1.56232019487653e-25 < b < 2.8123237256202247e-16Initial program 42.8
rmApplied flip3-+45.8
Simplified45.8
Simplified45.7
Final simplification9.8
herbie shell --seed 2019156 +o rules:numerics
(FPCore (a b c)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))