\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.680329042988888396603264581948851078331 \cdot 10^{148}:\\
\;\;\;\;\mathsf{fma}\left(\frac{b_2}{a}, -2, \frac{\frac{1}{2} \cdot c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 4.612990823111230552052602417245542305295 \cdot 10^{-104}:\\
\;\;\;\;\left(\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2\right) \cdot \frac{1}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r691109 = b_2;
double r691110 = -r691109;
double r691111 = r691109 * r691109;
double r691112 = a;
double r691113 = c;
double r691114 = r691112 * r691113;
double r691115 = r691111 - r691114;
double r691116 = sqrt(r691115);
double r691117 = r691110 + r691116;
double r691118 = r691117 / r691112;
return r691118;
}
double f(double a, double b_2, double c) {
double r691119 = b_2;
double r691120 = -3.6803290429888884e+148;
bool r691121 = r691119 <= r691120;
double r691122 = a;
double r691123 = r691119 / r691122;
double r691124 = -2.0;
double r691125 = 0.5;
double r691126 = c;
double r691127 = r691125 * r691126;
double r691128 = r691127 / r691119;
double r691129 = fma(r691123, r691124, r691128);
double r691130 = 4.6129908231112306e-104;
bool r691131 = r691119 <= r691130;
double r691132 = r691119 * r691119;
double r691133 = r691122 * r691126;
double r691134 = r691132 - r691133;
double r691135 = sqrt(r691134);
double r691136 = r691135 - r691119;
double r691137 = 1.0;
double r691138 = r691137 / r691122;
double r691139 = r691136 * r691138;
double r691140 = -0.5;
double r691141 = r691126 / r691119;
double r691142 = r691140 * r691141;
double r691143 = r691131 ? r691139 : r691142;
double r691144 = r691121 ? r691129 : r691143;
return r691144;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.6803290429888884e+148Initial program 62.1
Simplified62.1
rmApplied div-inv62.1
Taylor expanded around -inf 2.3
Simplified2.3
if -3.6803290429888884e+148 < b_2 < 4.6129908231112306e-104Initial program 12.1
Simplified12.1
rmApplied div-inv12.3
if 4.6129908231112306e-104 < b_2 Initial program 52.7
Simplified52.7
Taylor expanded around inf 9.8
Final simplification10.1
herbie shell --seed 2019170 +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))