\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 -1.0088663643419234 \cdot 10^{78}:\\
\;\;\;\;\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 \left(a \cdot \frac{c}{b}\right) - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 7.86646319928732318 \cdot 10^{93}:\\
\;\;\;\;\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{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{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 r44253 = b;
double r44254 = 0.0;
bool r44255 = r44253 >= r44254;
double r44256 = -r44253;
double r44257 = r44253 * r44253;
double r44258 = 4.0;
double r44259 = a;
double r44260 = r44258 * r44259;
double r44261 = c;
double r44262 = r44260 * r44261;
double r44263 = r44257 - r44262;
double r44264 = sqrt(r44263);
double r44265 = r44256 - r44264;
double r44266 = 2.0;
double r44267 = r44266 * r44259;
double r44268 = r44265 / r44267;
double r44269 = r44266 * r44261;
double r44270 = r44256 + r44264;
double r44271 = r44269 / r44270;
double r44272 = r44255 ? r44268 : r44271;
return r44272;
}
double f(double a, double b, double c) {
double r44273 = b;
double r44274 = -1.0088663643419234e+78;
bool r44275 = r44273 <= r44274;
double r44276 = 0.0;
bool r44277 = r44273 >= r44276;
double r44278 = -r44273;
double r44279 = r44273 * r44273;
double r44280 = 4.0;
double r44281 = a;
double r44282 = r44280 * r44281;
double r44283 = c;
double r44284 = r44282 * r44283;
double r44285 = r44279 - r44284;
double r44286 = sqrt(r44285);
double r44287 = r44278 - r44286;
double r44288 = 2.0;
double r44289 = r44288 * r44281;
double r44290 = r44287 / r44289;
double r44291 = r44288 * r44283;
double r44292 = r44283 / r44273;
double r44293 = r44281 * r44292;
double r44294 = r44288 * r44293;
double r44295 = r44294 - r44273;
double r44296 = r44278 + r44295;
double r44297 = r44291 / r44296;
double r44298 = r44277 ? r44290 : r44297;
double r44299 = 7.866463199287323e+93;
bool r44300 = r44273 <= r44299;
double r44301 = sqrt(r44286);
double r44302 = r44301 * r44301;
double r44303 = r44278 + r44302;
double r44304 = r44291 / r44303;
double r44305 = r44277 ? r44290 : r44304;
double r44306 = r44281 * r44283;
double r44307 = r44306 / r44273;
double r44308 = r44288 * r44307;
double r44309 = 2.0;
double r44310 = r44309 * r44273;
double r44311 = r44308 - r44310;
double r44312 = r44311 / r44289;
double r44313 = r44278 + r44286;
double r44314 = r44291 / r44313;
double r44315 = r44277 ? r44312 : r44314;
double r44316 = r44300 ? r44305 : r44315;
double r44317 = r44275 ? r44298 : r44316;
return r44317;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.0088663643419234e+78Initial program 27.9
Taylor expanded around -inf 6.5
rmApplied *-un-lft-identity6.5
Applied times-frac2.8
Simplified2.8
if -1.0088663643419234e+78 < b < 7.866463199287323e+93Initial program 9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
if 7.866463199287323e+93 < b Initial program 46.2
Taylor expanded around inf 10.4
Final simplification7.7
herbie shell --seed 2020027 +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)))))))