\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.755118612359990099835323540998142276883 \cdot 10^{47}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le -1.415217774929248159542813179693576626283 \cdot 10^{-267}:\\
\;\;\;\;1 \cdot \left(\frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\frac{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{\sqrt[3]{c} \cdot \sqrt[3]{c}}} \cdot \frac{\frac{\sqrt[3]{\sqrt[3]{a}}}{\frac{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{\sqrt[3]{c}}}}{\sqrt[3]{a}}\right)\\
\mathbf{elif}\;b_2 \le 3.561111989718156042582267854543789265968 \cdot 10^{98}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\end{array}double f(double a, double b_2, double c) {
double r42957 = b_2;
double r42958 = -r42957;
double r42959 = r42957 * r42957;
double r42960 = a;
double r42961 = c;
double r42962 = r42960 * r42961;
double r42963 = r42959 - r42962;
double r42964 = sqrt(r42963);
double r42965 = r42958 - r42964;
double r42966 = r42965 / r42960;
return r42966;
}
double f(double a, double b_2, double c) {
double r42967 = b_2;
double r42968 = -3.75511861235999e+47;
bool r42969 = r42967 <= r42968;
double r42970 = -0.5;
double r42971 = c;
double r42972 = r42971 / r42967;
double r42973 = r42970 * r42972;
double r42974 = -1.4152177749292482e-267;
bool r42975 = r42967 <= r42974;
double r42976 = 1.0;
double r42977 = a;
double r42978 = cbrt(r42977);
double r42979 = cbrt(r42978);
double r42980 = r42979 * r42979;
double r42981 = r42967 * r42967;
double r42982 = r42977 * r42971;
double r42983 = r42981 - r42982;
double r42984 = sqrt(r42983);
double r42985 = r42984 - r42967;
double r42986 = sqrt(r42985);
double r42987 = cbrt(r42971);
double r42988 = r42987 * r42987;
double r42989 = r42986 / r42988;
double r42990 = r42980 / r42989;
double r42991 = r42986 / r42987;
double r42992 = r42979 / r42991;
double r42993 = r42992 / r42978;
double r42994 = r42990 * r42993;
double r42995 = r42976 * r42994;
double r42996 = 3.561111989718156e+98;
bool r42997 = r42967 <= r42996;
double r42998 = -r42967;
double r42999 = r42998 - r42984;
double r43000 = r42999 / r42977;
double r43001 = 0.5;
double r43002 = r43001 * r42972;
double r43003 = 2.0;
double r43004 = r42967 / r42977;
double r43005 = r43003 * r43004;
double r43006 = r43002 - r43005;
double r43007 = r42997 ? r43000 : r43006;
double r43008 = r42975 ? r42995 : r43007;
double r43009 = r42969 ? r42973 : r43008;
return r43009;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.75511861235999e+47Initial program 57.1
Taylor expanded around -inf 4.0
if -3.75511861235999e+47 < b_2 < -1.4152177749292482e-267Initial program 30.3
rmApplied flip--30.3
Simplified16.7
Simplified16.7
rmApplied *-un-lft-identity16.7
Applied associate-/r*16.7
Simplified14.0
rmApplied add-cube-cbrt14.7
Applied *-un-lft-identity14.7
Applied *-un-lft-identity14.7
Applied times-frac14.7
Applied add-cube-cbrt14.0
Applied times-frac14.0
Applied times-frac10.2
Simplified10.2
rmApplied *-un-lft-identity10.2
Applied add-cube-cbrt11.0
Applied add-sqr-sqrt11.0
Applied times-frac11.1
Applied add-cube-cbrt11.3
Applied times-frac11.2
Applied times-frac10.3
Simplified10.3
if -1.4152177749292482e-267 < b_2 < 3.561111989718156e+98Initial program 9.9
if 3.561111989718156e+98 < b_2 Initial program 44.8
Taylor expanded around inf 3.6
Final simplification7.3
herbie shell --seed 2019298
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))