\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}:\\
\;\;\;\;1 \cdot \left(\frac{-1}{2} \cdot \frac{c}{b_2}\right)\\
\mathbf{elif}\;b_2 \le 5.722235152988638272816037483919181313619 \cdot 10^{98}:\\
\;\;\;\;1 \cdot \frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\right)\\
\end{array}double f(double a, double b_2, double c) {
double r71846 = b_2;
double r71847 = -r71846;
double r71848 = r71846 * r71846;
double r71849 = a;
double r71850 = c;
double r71851 = r71849 * r71850;
double r71852 = r71848 - r71851;
double r71853 = sqrt(r71852);
double r71854 = r71847 - r71853;
double r71855 = r71854 / r71849;
return r71855;
}
double f(double a, double b_2, double c) {
double r71856 = b_2;
double r71857 = -4.706781135059312e-92;
bool r71858 = r71856 <= r71857;
double r71859 = 1.0;
double r71860 = -0.5;
double r71861 = c;
double r71862 = r71861 / r71856;
double r71863 = r71860 * r71862;
double r71864 = r71859 * r71863;
double r71865 = 5.722235152988638e+98;
bool r71866 = r71856 <= r71865;
double r71867 = -r71856;
double r71868 = r71856 * r71856;
double r71869 = a;
double r71870 = r71869 * r71861;
double r71871 = r71868 - r71870;
double r71872 = sqrt(r71871);
double r71873 = r71867 - r71872;
double r71874 = r71873 / r71869;
double r71875 = r71859 * r71874;
double r71876 = 0.5;
double r71877 = r71876 * r71862;
double r71878 = 2.0;
double r71879 = r71856 / r71869;
double r71880 = r71878 * r71879;
double r71881 = r71877 - r71880;
double r71882 = r71859 * r71881;
double r71883 = r71866 ? r71875 : r71882;
double r71884 = r71858 ? r71864 : r71883;
return r71884;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -4.706781135059312e-92Initial program 52.4
rmApplied div-inv52.4
rmApplied *-un-lft-identity52.4
Applied associate-*l*52.4
Simplified52.4
Taylor expanded around -inf 10.2
if -4.706781135059312e-92 < b_2 < 5.722235152988638e+98Initial program 12.6
rmApplied div-inv12.7
rmApplied *-un-lft-identity12.7
Applied associate-*l*12.7
Simplified12.6
if 5.722235152988638e+98 < b_2 Initial program 47.1
rmApplied div-inv47.1
rmApplied *-un-lft-identity47.1
Applied associate-*l*47.1
Simplified47.1
Taylor expanded around inf 3.6
Final simplification10.1
herbie shell --seed 2019353 +o rules:numerics
(FPCore (a b_2 c)
:name "NMSE problem 3.2.1"
:precision binary64
(/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))