\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -5.105369019268963816293244653075052742799 \cdot 10^{141}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 5.139720957774800459105165687985873103887 \cdot 10^{144}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \left|\sqrt[3]{b \cdot b - \left(4 \cdot a\right) \cdot c}\right| \cdot \sqrt{\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\sqrt{\left(\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right) \cdot \sqrt[3]{\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}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r31186 = b;
double r31187 = 0.0;
bool r31188 = r31186 >= r31187;
double r31189 = 2.0;
double r31190 = c;
double r31191 = r31189 * r31190;
double r31192 = -r31186;
double r31193 = r31186 * r31186;
double r31194 = 4.0;
double r31195 = a;
double r31196 = r31194 * r31195;
double r31197 = r31196 * r31190;
double r31198 = r31193 - r31197;
double r31199 = sqrt(r31198);
double r31200 = r31192 - r31199;
double r31201 = r31191 / r31200;
double r31202 = r31192 + r31199;
double r31203 = r31189 * r31195;
double r31204 = r31202 / r31203;
double r31205 = r31188 ? r31201 : r31204;
return r31205;
}
double f(double a, double b, double c) {
double r31206 = b;
double r31207 = -5.105369019268964e+141;
bool r31208 = r31206 <= r31207;
double r31209 = 0.0;
bool r31210 = r31206 >= r31209;
double r31211 = 2.0;
double r31212 = c;
double r31213 = r31211 * r31212;
double r31214 = -r31206;
double r31215 = r31206 * r31206;
double r31216 = 4.0;
double r31217 = a;
double r31218 = r31216 * r31217;
double r31219 = r31218 * r31212;
double r31220 = r31215 - r31219;
double r31221 = sqrt(r31220);
double r31222 = r31214 - r31221;
double r31223 = r31213 / r31222;
double r31224 = r31217 * r31212;
double r31225 = r31224 / r31206;
double r31226 = r31211 * r31225;
double r31227 = 2.0;
double r31228 = r31227 * r31206;
double r31229 = r31226 - r31228;
double r31230 = r31211 * r31217;
double r31231 = r31229 / r31230;
double r31232 = r31210 ? r31223 : r31231;
double r31233 = 5.1397209577748005e+144;
bool r31234 = r31206 <= r31233;
double r31235 = cbrt(r31220);
double r31236 = fabs(r31235);
double r31237 = cbrt(r31221);
double r31238 = r31237 * r31237;
double r31239 = r31238 * r31237;
double r31240 = sqrt(r31239);
double r31241 = sqrt(r31221);
double r31242 = r31240 * r31241;
double r31243 = cbrt(r31242);
double r31244 = r31237 * r31243;
double r31245 = sqrt(r31244);
double r31246 = r31236 * r31245;
double r31247 = r31214 + r31246;
double r31248 = r31247 / r31230;
double r31249 = r31210 ? r31223 : r31248;
double r31250 = r31206 - r31226;
double r31251 = r31214 - r31250;
double r31252 = r31213 / r31251;
double r31253 = r31214 + r31221;
double r31254 = r31253 / r31230;
double r31255 = r31210 ? r31252 : r31254;
double r31256 = r31234 ? r31249 : r31255;
double r31257 = r31208 ? r31232 : r31256;
return r31257;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -5.105369019268964e+141Initial program 60.4
Taylor expanded around -inf 10.7
if -5.105369019268964e+141 < b < 5.1397209577748005e+144Initial program 8.2
rmApplied add-cube-cbrt8.4
Applied sqrt-prod8.4
Simplified8.4
rmApplied add-sqr-sqrt8.4
Applied cbrt-prod8.4
rmApplied add-sqr-sqrt8.4
Applied sqrt-prod8.4
rmApplied add-cube-cbrt8.4
if 5.1397209577748005e+144 < b Initial program 36.4
Taylor expanded around inf 6.1
Final simplification8.3
herbie shell --seed 2019325
(FPCore (a b c)
:name "jeff quadratic root 2"
:precision binary64
(if (>= b 0.0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))