\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.177289780863109 \cdot 10^{+94}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{1}{2} \cdot \frac{c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 7.296044290893796 \cdot 10^{-114}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - 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 r613309 = b_2;
double r613310 = -r613309;
double r613311 = r613309 * r613309;
double r613312 = a;
double r613313 = c;
double r613314 = r613312 * r613313;
double r613315 = r613311 - r613314;
double r613316 = sqrt(r613315);
double r613317 = r613310 + r613316;
double r613318 = r613317 / r613312;
return r613318;
}
double f(double a, double b_2, double c) {
double r613319 = b_2;
double r613320 = -3.177289780863109e+94;
bool r613321 = r613319 <= r613320;
double r613322 = a;
double r613323 = r613319 / r613322;
double r613324 = -2.0;
double r613325 = 0.5;
double r613326 = c;
double r613327 = r613326 / r613319;
double r613328 = r613325 * r613327;
double r613329 = fma(r613323, r613324, r613328);
double r613330 = 7.296044290893796e-114;
bool r613331 = r613319 <= r613330;
double r613332 = r613319 * r613319;
double r613333 = r613322 * r613326;
double r613334 = r613332 - r613333;
double r613335 = sqrt(r613334);
double r613336 = r613335 - r613319;
double r613337 = r613336 / r613322;
double r613338 = -0.5;
double r613339 = r613327 * r613338;
double r613340 = r613331 ? r613337 : r613339;
double r613341 = r613321 ? r613329 : r613340;
return r613341;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.177289780863109e+94Initial program 43.5
Simplified43.5
Taylor expanded around -inf 3.7
Simplified3.7
if -3.177289780863109e+94 < b_2 < 7.296044290893796e-114Initial program 12.3
Simplified12.3
Taylor expanded around 0 12.3
Simplified12.3
if 7.296044290893796e-114 < b_2 Initial program 51.6
Simplified51.6
Taylor expanded around 0 51.6
Simplified51.6
Taylor expanded around inf 10.8
Final simplification10.3
herbie shell --seed 2019141 +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))