\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.2375225949334019 \cdot 10^{57}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 1.9220534958503673 \cdot 10^{-246}:\\
\;\;\;\;1 \cdot \frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}\\
\mathbf{elif}\;b_2 \le 1.77017414835012383 \cdot 10^{70}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 \cdot \left(-2 \cdot b_2\right)}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r305 = b_2;
double r306 = -r305;
double r307 = r305 * r305;
double r308 = a;
double r309 = c;
double r310 = r308 * r309;
double r311 = r307 - r310;
double r312 = sqrt(r311);
double r313 = r306 - r312;
double r314 = r313 / r308;
return r314;
}
double f(double a, double b_2, double c) {
double r315 = b_2;
double r316 = -2.237522594933402e+57;
bool r317 = r315 <= r316;
double r318 = -0.5;
double r319 = c;
double r320 = r319 / r315;
double r321 = r318 * r320;
double r322 = 1.9220534958503673e-246;
bool r323 = r315 <= r322;
double r324 = 1.0;
double r325 = r315 * r315;
double r326 = a;
double r327 = r326 * r319;
double r328 = r325 - r327;
double r329 = sqrt(r328);
double r330 = r329 - r315;
double r331 = r319 / r330;
double r332 = r324 * r331;
double r333 = 1.7701741483501238e+70;
bool r334 = r315 <= r333;
double r335 = -r315;
double r336 = r335 - r329;
double r337 = r324 / r326;
double r338 = r336 * r337;
double r339 = -2.0;
double r340 = r339 * r315;
double r341 = r324 * r340;
double r342 = r341 / r326;
double r343 = r334 ? r338 : r342;
double r344 = r323 ? r332 : r343;
double r345 = r317 ? r321 : r344;
return r345;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.237522594933402e+57Initial program 57.0
Taylor expanded around -inf 3.8
if -2.237522594933402e+57 < b_2 < 1.9220534958503673e-246Initial program 28.3
rmApplied flip--28.3
Simplified17.0
Simplified17.0
rmApplied *-un-lft-identity17.0
Applied *-un-lft-identity17.0
Applied times-frac17.0
Simplified17.0
Simplified14.6
rmApplied clear-num14.6
Simplified10.6
rmApplied *-un-lft-identity10.6
Applied times-frac10.6
Applied add-cube-cbrt10.6
Applied times-frac10.6
Simplified10.6
Simplified10.4
if 1.9220534958503673e-246 < b_2 < 1.7701741483501238e+70Initial program 8.4
rmApplied div-inv8.6
if 1.7701741483501238e+70 < b_2 Initial program 41.6
rmApplied flip--62.0
Simplified61.2
Simplified61.2
rmApplied *-un-lft-identity61.2
Applied *-un-lft-identity61.2
Applied times-frac61.2
Simplified61.2
Simplified61.0
Taylor expanded around 0 5.6
Final simplification7.2
herbie shell --seed 2020025
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))