\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -1.264659490877098 \cdot 10^{-67}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\mathbf{elif}\;b_2 \le 0.17389787404847717:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-2, \frac{b_2}{a}, \frac{c}{b_2} \cdot \frac{1}{2}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r812809 = b_2;
double r812810 = -r812809;
double r812811 = r812809 * r812809;
double r812812 = a;
double r812813 = c;
double r812814 = r812812 * r812813;
double r812815 = r812811 - r812814;
double r812816 = sqrt(r812815);
double r812817 = r812810 - r812816;
double r812818 = r812817 / r812812;
return r812818;
}
double f(double a, double b_2, double c) {
double r812819 = b_2;
double r812820 = -1.264659490877098e-67;
bool r812821 = r812819 <= r812820;
double r812822 = -0.5;
double r812823 = c;
double r812824 = r812823 / r812819;
double r812825 = r812822 * r812824;
double r812826 = 0.17389787404847717;
bool r812827 = r812819 <= r812826;
double r812828 = -r812819;
double r812829 = r812819 * r812819;
double r812830 = a;
double r812831 = r812830 * r812823;
double r812832 = r812829 - r812831;
double r812833 = sqrt(r812832);
double r812834 = r812828 - r812833;
double r812835 = r812834 / r812830;
double r812836 = -2.0;
double r812837 = r812819 / r812830;
double r812838 = 0.5;
double r812839 = r812824 * r812838;
double r812840 = fma(r812836, r812837, r812839);
double r812841 = r812827 ? r812835 : r812840;
double r812842 = r812821 ? r812825 : r812841;
return r812842;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -1.264659490877098e-67Initial program 53.0
Taylor expanded around -inf 8.0
if -1.264659490877098e-67 < b_2 < 0.17389787404847717Initial program 15.0
rmApplied div-inv15.1
rmApplied un-div-inv15.0
if 0.17389787404847717 < b_2 Initial program 29.8
rmApplied div-inv29.9
Taylor expanded around inf 7.3
Simplified7.3
Final simplification10.3
herbie shell --seed 2019168 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2m (problem 3.2.1, negative)"
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))