\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -4.706781135059311758856471716413486308072 \cdot 10^{-92}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\
\mathbf{elif}\;b_2 \le 6.385814412780331293336851171468331234192 \cdot 10^{98}:\\
\;\;\;\;\frac{1}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot c\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r18790 = b_2;
double r18791 = -r18790;
double r18792 = r18790 * r18790;
double r18793 = a;
double r18794 = c;
double r18795 = r18793 * r18794;
double r18796 = r18792 - r18795;
double r18797 = sqrt(r18796);
double r18798 = r18791 + r18797;
double r18799 = r18798 / r18793;
return r18799;
}
double f(double a, double b_2, double c) {
double r18800 = b_2;
double r18801 = -4.706781135059312e-92;
bool r18802 = r18800 <= r18801;
double r18803 = 0.5;
double r18804 = c;
double r18805 = r18804 / r18800;
double r18806 = r18803 * r18805;
double r18807 = 2.0;
double r18808 = a;
double r18809 = r18800 / r18808;
double r18810 = r18807 * r18809;
double r18811 = r18806 - r18810;
double r18812 = 6.385814412780331e+98;
bool r18813 = r18800 <= r18812;
double r18814 = 1.0;
double r18815 = -r18800;
double r18816 = r18800 * r18800;
double r18817 = r18808 * r18804;
double r18818 = r18816 - r18817;
double r18819 = sqrt(r18818);
double r18820 = r18815 - r18819;
double r18821 = r18814 / r18820;
double r18822 = r18821 * r18804;
double r18823 = -0.5;
double r18824 = r18823 * r18805;
double r18825 = r18813 ? r18822 : r18824;
double r18826 = r18802 ? r18811 : r18825;
return r18826;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.706781135059312e-92Initial program 26.6
Taylor expanded around -inf 12.8
if -4.706781135059312e-92 < b_2 < 6.385814412780331e+98Initial program 26.4
rmApplied flip-+28.7
Simplified17.8
rmApplied *-un-lft-identity17.8
Applied *-un-lft-identity17.8
Applied times-frac17.8
Simplified17.8
Simplified16.3
rmApplied clear-num16.2
Simplified12.5
rmApplied div-inv12.6
Applied add-cube-cbrt12.6
Applied times-frac12.4
Simplified12.4
Simplified12.3
if 6.385814412780331e+98 < b_2 Initial program 59.2
Taylor expanded around inf 2.5
Final simplification10.0
herbie shell --seed 2019353
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
:precision binary64
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))