\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.06165607700969823504029634358803608389 \cdot 10^{154}:\\
\;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\
\mathbf{elif}\;b \le 2.153415381666121571802343787447463758755 \cdot 10^{-275}:\\
\;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3}}{a}\\
\mathbf{elif}\;b \le 5.137043888653351826447705471890965160323 \cdot 10^{134}:\\
\;\;\;\;\frac{\frac{c \cdot 3}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{\frac{3 \cdot a}{\frac{a}{\sqrt[3]{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(c \cdot 3\right) \cdot a}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r92240 = b;
double r92241 = -r92240;
double r92242 = r92240 * r92240;
double r92243 = 3.0;
double r92244 = a;
double r92245 = r92243 * r92244;
double r92246 = c;
double r92247 = r92245 * r92246;
double r92248 = r92242 - r92247;
double r92249 = sqrt(r92248);
double r92250 = r92241 + r92249;
double r92251 = r92250 / r92245;
return r92251;
}
double f(double a, double b, double c) {
double r92252 = b;
double r92253 = -1.0616560770096982e+154;
bool r92254 = r92252 <= r92253;
double r92255 = 1.5;
double r92256 = a;
double r92257 = c;
double r92258 = r92256 * r92257;
double r92259 = r92258 / r92252;
double r92260 = r92255 * r92259;
double r92261 = 2.0;
double r92262 = r92261 * r92252;
double r92263 = r92260 - r92262;
double r92264 = 3.0;
double r92265 = r92264 * r92256;
double r92266 = r92263 / r92265;
double r92267 = 2.1534153816661216e-275;
bool r92268 = r92252 <= r92267;
double r92269 = r92252 * r92252;
double r92270 = r92265 * r92257;
double r92271 = r92269 - r92270;
double r92272 = sqrt(r92271);
double r92273 = r92272 - r92252;
double r92274 = r92273 / r92264;
double r92275 = r92274 / r92256;
double r92276 = 5.137043888653352e+134;
bool r92277 = r92252 <= r92276;
double r92278 = r92257 * r92264;
double r92279 = -r92252;
double r92280 = r92279 - r92272;
double r92281 = cbrt(r92280);
double r92282 = r92281 * r92281;
double r92283 = r92278 / r92282;
double r92284 = sqrt(r92272);
double r92285 = r92284 * r92284;
double r92286 = r92279 - r92285;
double r92287 = cbrt(r92286);
double r92288 = r92256 / r92287;
double r92289 = r92265 / r92288;
double r92290 = r92283 / r92289;
double r92291 = r92278 * r92256;
double r92292 = r92252 - r92260;
double r92293 = r92279 - r92292;
double r92294 = r92291 / r92293;
double r92295 = r92294 / r92265;
double r92296 = r92277 ? r92290 : r92295;
double r92297 = r92268 ? r92275 : r92296;
double r92298 = r92254 ? r92266 : r92297;
return r92298;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.0616560770096982e+154Initial program 63.9
Taylor expanded around -inf 11.4
if -1.0616560770096982e+154 < b < 2.1534153816661216e-275Initial program 8.6
Simplified8.6
if 2.1534153816661216e-275 < b < 5.137043888653352e+134Initial program 35.3
rmApplied flip-+35.3
Simplified16.8
rmApplied add-cube-cbrt17.4
Applied times-frac15.4
Applied associate-/l*9.9
rmApplied add-sqr-sqrt9.9
Applied sqrt-prod9.9
if 5.137043888653352e+134 < b Initial program 62.2
rmApplied flip-+62.2
Simplified36.0
Taylor expanded around inf 15.3
Final simplification10.7
herbie shell --seed 2019326
(FPCore (a b c)
:name "Cubic critical"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))