\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.880394710329243 \cdot 10^{+120}:\\
\;\;\;\;\left(\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a}\right) - \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 6.671555931634925 \cdot 10^{+42}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a} - \frac{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 r4672151 = b_2;
double r4672152 = -r4672151;
double r4672153 = r4672151 * r4672151;
double r4672154 = a;
double r4672155 = c;
double r4672156 = r4672154 * r4672155;
double r4672157 = r4672153 - r4672156;
double r4672158 = sqrt(r4672157);
double r4672159 = r4672152 + r4672158;
double r4672160 = r4672159 / r4672154;
return r4672160;
}
double f(double a, double b_2, double c) {
double r4672161 = b_2;
double r4672162 = -2.880394710329243e+120;
bool r4672163 = r4672161 <= r4672162;
double r4672164 = 0.5;
double r4672165 = c;
double r4672166 = r4672165 / r4672161;
double r4672167 = r4672164 * r4672166;
double r4672168 = a;
double r4672169 = r4672161 / r4672168;
double r4672170 = r4672167 - r4672169;
double r4672171 = r4672170 - r4672169;
double r4672172 = 6.671555931634925e+42;
bool r4672173 = r4672161 <= r4672172;
double r4672174 = r4672161 * r4672161;
double r4672175 = r4672168 * r4672165;
double r4672176 = r4672174 - r4672175;
double r4672177 = sqrt(r4672176);
double r4672178 = r4672177 / r4672168;
double r4672179 = r4672178 - r4672169;
double r4672180 = -0.5;
double r4672181 = r4672166 * r4672180;
double r4672182 = r4672173 ? r4672179 : r4672181;
double r4672183 = r4672163 ? r4672171 : r4672182;
return r4672183;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.880394710329243e+120Initial program 49.0
Simplified49.0
rmApplied div-sub49.0
Taylor expanded around -inf 2.7
if -2.880394710329243e+120 < b_2 < 6.671555931634925e+42Initial program 17.0
Simplified17.0
rmApplied div-sub17.0
if 6.671555931634925e+42 < b_2 Initial program 56.4
Simplified56.4
Taylor expanded around inf 4.1
Final simplification11.3
herbie shell --seed 2019124 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))