\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 r2128308 = b;
double r2128309 = -r2128308;
double r2128310 = r2128308 * r2128308;
double r2128311 = 3.0;
double r2128312 = a;
double r2128313 = r2128311 * r2128312;
double r2128314 = c;
double r2128315 = r2128313 * r2128314;
double r2128316 = r2128310 - r2128315;
double r2128317 = sqrt(r2128316);
double r2128318 = r2128309 + r2128317;
double r2128319 = r2128318 / r2128313;
return r2128319;
}
double f(double a, double b, double c) {
double r2128320 = b;
double r2128321 = -1.3441037991607355e+154;
bool r2128322 = r2128320 <= r2128321;
double r2128323 = 1.5;
double r2128324 = a;
double r2128325 = c;
double r2128326 = r2128324 * r2128325;
double r2128327 = r2128326 / r2128320;
double r2128328 = r2128323 * r2128327;
double r2128329 = r2128328 - r2128320;
double r2128330 = r2128329 - r2128320;
double r2128331 = 3.0;
double r2128332 = r2128331 * r2128324;
double r2128333 = r2128330 / r2128332;
double r2128334 = 6.399558563329366e-17;
bool r2128335 = r2128320 <= r2128334;
double r2128336 = r2128320 * r2128320;
double r2128337 = r2128332 * r2128325;
double r2128338 = r2128336 - r2128337;
double r2128339 = sqrt(r2128338);
double r2128340 = r2128339 - r2128320;
double r2128341 = r2128340 / r2128332;
double r2128342 = -1.5;
double r2128343 = r2128342 * r2128327;
double r2128344 = r2128343 / r2128332;
double r2128345 = r2128335 ? r2128341 : r2128344;
double r2128346 = r2128322 ? r2128333 : r2128345;
return r2128346;
}



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)))