\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.270528699455007486596308100489334356636 \cdot 10^{152}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 1.744031351412432972171902712116585209201 \cdot 10^{-142}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\
\end{array}double f(double a, double b_2, double c) {
double r845945 = b_2;
double r845946 = -r845945;
double r845947 = r845945 * r845945;
double r845948 = a;
double r845949 = c;
double r845950 = r845948 * r845949;
double r845951 = r845947 - r845950;
double r845952 = sqrt(r845951);
double r845953 = r845946 + r845952;
double r845954 = r845953 / r845948;
return r845954;
}
double f(double a, double b_2, double c) {
double r845955 = b_2;
double r845956 = -1.2705286994550075e+152;
bool r845957 = r845955 <= r845956;
double r845958 = 0.5;
double r845959 = c;
double r845960 = r845959 / r845955;
double r845961 = r845958 * r845960;
double r845962 = a;
double r845963 = r845955 / r845962;
double r845964 = 2.0;
double r845965 = r845963 * r845964;
double r845966 = r845961 - r845965;
double r845967 = 1.744031351412433e-142;
bool r845968 = r845955 <= r845967;
double r845969 = r845955 * r845955;
double r845970 = r845959 * r845962;
double r845971 = r845969 - r845970;
double r845972 = sqrt(r845971);
double r845973 = r845972 - r845955;
double r845974 = r845973 / r845962;
double r845975 = -0.5;
double r845976 = r845960 * r845975;
double r845977 = r845968 ? r845974 : r845976;
double r845978 = r845957 ? r845966 : r845977;
return r845978;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -1.2705286994550075e+152Initial program 62.9
Simplified62.9
Taylor expanded around -inf 1.6
if -1.2705286994550075e+152 < b_2 < 1.744031351412433e-142Initial program 10.4
Simplified10.4
rmApplied div-inv10.5
rmApplied un-div-inv10.4
if 1.744031351412433e-142 < b_2 Initial program 50.7
Simplified50.7
Taylor expanded around inf 12.1
Final simplification10.2
herbie shell --seed 2019168
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))