\begin{array}{l}
\mathbf{if}\;b \ge 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.3441037991607355 \cdot 10^{+154}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{2 \cdot \left(\frac{a \cdot c}{b} - b\right)}\\
\end{array}\\
\mathbf{elif}\;b \le 7.947663392061663 \cdot 10^{+104}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\\
\end{array}double f(double a, double b, double c) {
double r433233 = b;
double r433234 = 0.0;
bool r433235 = r433233 >= r433234;
double r433236 = -r433233;
double r433237 = r433233 * r433233;
double r433238 = 4.0;
double r433239 = a;
double r433240 = r433238 * r433239;
double r433241 = c;
double r433242 = r433240 * r433241;
double r433243 = r433237 - r433242;
double r433244 = sqrt(r433243);
double r433245 = r433236 - r433244;
double r433246 = 2.0;
double r433247 = r433246 * r433239;
double r433248 = r433245 / r433247;
double r433249 = r433246 * r433241;
double r433250 = r433236 + r433244;
double r433251 = r433249 / r433250;
double r433252 = r433235 ? r433248 : r433251;
return r433252;
}
double f(double a, double b, double c) {
double r433253 = b;
double r433254 = -1.3441037991607355e+154;
bool r433255 = r433253 <= r433254;
double r433256 = 0.0;
bool r433257 = r433253 >= r433256;
double r433258 = -r433253;
double r433259 = r433253 * r433253;
double r433260 = 4.0;
double r433261 = a;
double r433262 = r433260 * r433261;
double r433263 = c;
double r433264 = r433262 * r433263;
double r433265 = r433259 - r433264;
double r433266 = sqrt(r433265);
double r433267 = r433258 - r433266;
double r433268 = 2.0;
double r433269 = r433268 * r433261;
double r433270 = r433267 / r433269;
double r433271 = r433263 * r433268;
double r433272 = r433261 * r433263;
double r433273 = r433272 / r433253;
double r433274 = r433273 - r433253;
double r433275 = r433268 * r433274;
double r433276 = r433271 / r433275;
double r433277 = r433257 ? r433270 : r433276;
double r433278 = 7.947663392061663e+104;
bool r433279 = r433253 <= r433278;
double r433280 = cbrt(r433265);
double r433281 = sqrt(r433280);
double r433282 = r433280 * r433280;
double r433283 = sqrt(r433282);
double r433284 = r433281 * r433283;
double r433285 = r433258 - r433284;
double r433286 = r433285 / r433269;
double r433287 = r433266 + r433258;
double r433288 = r433271 / r433287;
double r433289 = r433257 ? r433286 : r433288;
double r433290 = r433268 * r433273;
double r433291 = r433253 - r433290;
double r433292 = r433258 - r433291;
double r433293 = r433292 / r433269;
double r433294 = r433257 ? r433293 : r433288;
double r433295 = r433279 ? r433289 : r433294;
double r433296 = r433255 ? r433277 : r433295;
return r433296;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3441037991607355e+154Initial program 38.9
rmApplied add-sqr-sqrt38.9
Applied sqrt-prod38.9
Taylor expanded around -inf 5.2
Simplified5.2
if -1.3441037991607355e+154 < b < 7.947663392061663e+104Initial program 8.5
rmApplied add-cube-cbrt8.7
Applied sqrt-prod8.7
if 7.947663392061663e+104 < b Initial program 44.3
Taylor expanded around inf 8.9
Final simplification8.1
herbie shell --seed 2019153
(FPCore (a b c)
:name "jeff quadratic root 1"
(if (>= b 0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))