\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -8.687169645099804665049460580076288185662 \cdot 10^{72}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 2.178383319658251659941996545038743748932 \cdot 10^{-298}:\\
\;\;\;\;\frac{\frac{1}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{\frac{1}{c}}\\
\mathbf{elif}\;b_2 \le 9.981010889976272049519072583984808542877 \cdot 10^{53}:\\
\;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\
\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 r23056 = b_2;
double r23057 = -r23056;
double r23058 = r23056 * r23056;
double r23059 = a;
double r23060 = c;
double r23061 = r23059 * r23060;
double r23062 = r23058 - r23061;
double r23063 = sqrt(r23062);
double r23064 = r23057 - r23063;
double r23065 = r23064 / r23059;
return r23065;
}
double f(double a, double b_2, double c) {
double r23066 = b_2;
double r23067 = -8.687169645099805e+72;
bool r23068 = r23066 <= r23067;
double r23069 = -0.5;
double r23070 = c;
double r23071 = r23070 / r23066;
double r23072 = r23069 * r23071;
double r23073 = 2.1783833196582517e-298;
bool r23074 = r23066 <= r23073;
double r23075 = 1.0;
double r23076 = r23066 * r23066;
double r23077 = a;
double r23078 = r23077 * r23070;
double r23079 = r23076 - r23078;
double r23080 = sqrt(r23079);
double r23081 = r23080 - r23066;
double r23082 = r23075 / r23081;
double r23083 = r23075 / r23070;
double r23084 = r23082 / r23083;
double r23085 = 9.981010889976272e+53;
bool r23086 = r23066 <= r23085;
double r23087 = -r23066;
double r23088 = r23087 - r23080;
double r23089 = r23077 / r23088;
double r23090 = r23075 / r23089;
double r23091 = 0.5;
double r23092 = r23091 * r23071;
double r23093 = 2.0;
double r23094 = r23066 / r23077;
double r23095 = r23093 * r23094;
double r23096 = r23092 - r23095;
double r23097 = r23086 ? r23090 : r23096;
double r23098 = r23074 ? r23084 : r23097;
double r23099 = r23068 ? r23072 : r23098;
return r23099;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -8.687169645099805e+72Initial program 58.4
Taylor expanded around -inf 3.5
if -8.687169645099805e+72 < b_2 < 2.1783833196582517e-298Initial program 30.5
rmApplied flip--30.6
Simplified16.8
Simplified16.8
rmApplied *-un-lft-identity16.8
Applied associate-/r*16.8
Simplified14.3
rmApplied div-inv14.3
Applied *-un-lft-identity14.3
Applied times-frac16.9
Applied associate-/l*16.4
Simplified9.7
if 2.1783833196582517e-298 < b_2 < 9.981010889976272e+53Initial program 9.7
rmApplied clear-num9.8
if 9.981010889976272e+53 < b_2 Initial program 37.9
Taylor expanded around inf 5.0
Final simplification7.2
herbie shell --seed 2020002
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))