\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -2.37749702272254886 \cdot 10^{101}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 4.888690460859863 \cdot 10^{98}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\end{array}double f(double a, double b, double c) {
double r39291 = b;
double r39292 = 0.0;
bool r39293 = r39291 >= r39292;
double r39294 = -r39291;
double r39295 = r39291 * r39291;
double r39296 = 4.0;
double r39297 = a;
double r39298 = r39296 * r39297;
double r39299 = c;
double r39300 = r39298 * r39299;
double r39301 = r39295 - r39300;
double r39302 = sqrt(r39301);
double r39303 = r39294 - r39302;
double r39304 = 2.0;
double r39305 = r39304 * r39297;
double r39306 = r39303 / r39305;
double r39307 = r39304 * r39299;
double r39308 = r39294 + r39302;
double r39309 = r39307 / r39308;
double r39310 = r39293 ? r39306 : r39309;
return r39310;
}
double f(double a, double b, double c) {
double r39311 = b;
double r39312 = -2.377497022722549e+101;
bool r39313 = r39311 <= r39312;
double r39314 = 0.0;
bool r39315 = r39311 >= r39314;
double r39316 = -r39311;
double r39317 = r39311 * r39311;
double r39318 = 4.0;
double r39319 = a;
double r39320 = r39318 * r39319;
double r39321 = c;
double r39322 = r39320 * r39321;
double r39323 = r39317 - r39322;
double r39324 = sqrt(r39323);
double r39325 = r39316 - r39324;
double r39326 = 2.0;
double r39327 = r39326 * r39319;
double r39328 = r39325 / r39327;
double r39329 = r39326 * r39321;
double r39330 = r39319 * r39321;
double r39331 = r39330 / r39311;
double r39332 = r39326 * r39331;
double r39333 = r39332 - r39311;
double r39334 = r39316 + r39333;
double r39335 = r39329 / r39334;
double r39336 = r39315 ? r39328 : r39335;
double r39337 = 4.888690460859863e+98;
bool r39338 = r39311 <= r39337;
double r39339 = sqrt(r39324);
double r39340 = r39339 * r39339;
double r39341 = r39316 - r39340;
double r39342 = r39341 / r39327;
double r39343 = r39316 + r39324;
double r39344 = r39329 / r39343;
double r39345 = r39315 ? r39342 : r39344;
double r39346 = r39311 - r39332;
double r39347 = r39316 - r39346;
double r39348 = r39347 / r39327;
double r39349 = r39315 ? r39348 : r39344;
double r39350 = r39338 ? r39345 : r39349;
double r39351 = r39313 ? r39336 : r39350;
return r39351;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -2.377497022722549e+101Initial program 31.1
Taylor expanded around -inf 6.8
if -2.377497022722549e+101 < b < 4.888690460859863e+98Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 4.888690460859863e+98 < b Initial program 46.6
Taylor expanded around inf 10.3
Final simplification8.8
herbie shell --seed 2020060 +o rules:numerics
(FPCore (a b c)
:name "jeff quadratic root 1"
:precision binary64
(if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))