\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.794505329565205 \cdot 10^{+146}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\
\mathbf{elif}\;b_2 \le 1.6194276288860963:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r535780 = b_2;
double r535781 = -r535780;
double r535782 = r535780 * r535780;
double r535783 = a;
double r535784 = c;
double r535785 = r535783 * r535784;
double r535786 = r535782 - r535785;
double r535787 = sqrt(r535786);
double r535788 = r535781 + r535787;
double r535789 = r535788 / r535783;
return r535789;
}
double f(double a, double b_2, double c) {
double r535790 = b_2;
double r535791 = -3.794505329565205e+146;
bool r535792 = r535790 <= r535791;
double r535793 = 0.5;
double r535794 = c;
double r535795 = r535794 / r535790;
double r535796 = r535793 * r535795;
double r535797 = a;
double r535798 = r535790 / r535797;
double r535799 = 2.0;
double r535800 = r535798 * r535799;
double r535801 = r535796 - r535800;
double r535802 = 1.6194276288860963;
bool r535803 = r535790 <= r535802;
double r535804 = r535790 * r535790;
double r535805 = r535794 * r535797;
double r535806 = r535804 - r535805;
double r535807 = sqrt(r535806);
double r535808 = r535807 - r535790;
double r535809 = r535808 / r535797;
double r535810 = -0.5;
double r535811 = r535810 * r535795;
double r535812 = r535803 ? r535809 : r535811;
double r535813 = r535792 ? r535801 : r535812;
return r535813;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -3.794505329565205e+146Initial program 58.0
Simplified58.0
Taylor expanded around -inf 3.0
if -3.794505329565205e+146 < b_2 < 1.6194276288860963Initial program 15.0
Simplified15.0
rmApplied *-un-lft-identity15.0
Applied associate-/l*15.1
rmApplied *-un-lft-identity15.1
Applied *-un-lft-identity15.1
Applied times-frac15.1
Applied add-sqr-sqrt15.1
Applied times-frac15.1
Simplified15.1
Simplified15.0
if 1.6194276288860963 < b_2 Initial program 54.4
Simplified54.4
Taylor expanded around inf 5.8
Final simplification10.6
herbie shell --seed 2019129
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))