\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -2.125553485370055 \cdot 10^{-113}:\\
\;\;\;\;1 \cdot \left(1 \cdot \left(\frac{-1}{2} \cdot \frac{c}{b_2}\right)\right)\\
\mathbf{elif}\;b_2 \le 6.51740022507215 \cdot 10^{112}:\\
\;\;\;\;1 \cdot \left(1 \cdot \frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(1 \cdot \left(\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\right)\right)\\
\end{array}double f(double a, double b_2, double c) {
double r84007 = b_2;
double r84008 = -r84007;
double r84009 = r84007 * r84007;
double r84010 = a;
double r84011 = c;
double r84012 = r84010 * r84011;
double r84013 = r84009 - r84012;
double r84014 = sqrt(r84013);
double r84015 = r84008 - r84014;
double r84016 = r84015 / r84010;
return r84016;
}
double f(double a, double b_2, double c) {
double r84017 = b_2;
double r84018 = -2.125553485370055e-113;
bool r84019 = r84017 <= r84018;
double r84020 = 1.0;
double r84021 = -0.5;
double r84022 = c;
double r84023 = r84022 / r84017;
double r84024 = r84021 * r84023;
double r84025 = r84020 * r84024;
double r84026 = r84020 * r84025;
double r84027 = 6.51740022507215e+112;
bool r84028 = r84017 <= r84027;
double r84029 = -r84017;
double r84030 = r84017 * r84017;
double r84031 = a;
double r84032 = r84031 * r84022;
double r84033 = r84030 - r84032;
double r84034 = sqrt(r84033);
double r84035 = r84029 - r84034;
double r84036 = r84035 / r84031;
double r84037 = r84020 * r84036;
double r84038 = r84020 * r84037;
double r84039 = 0.5;
double r84040 = r84039 * r84023;
double r84041 = 2.0;
double r84042 = r84017 / r84031;
double r84043 = r84041 * r84042;
double r84044 = r84040 - r84043;
double r84045 = r84020 * r84044;
double r84046 = r84020 * r84045;
double r84047 = r84028 ? r84038 : r84046;
double r84048 = r84019 ? r84026 : r84047;
return r84048;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Results
if b_2 < -2.125553485370055e-113Initial program 51.4
rmApplied clear-num51.4
rmApplied *-un-lft-identity51.4
rmApplied *-un-lft-identity51.4
Applied *-un-lft-identity51.4
Applied times-frac51.4
Applied add-cube-cbrt51.4
Applied times-frac51.4
Simplified51.4
Simplified51.4
Taylor expanded around -inf 10.8
if -2.125553485370055e-113 < b_2 < 6.51740022507215e+112Initial program 12.1
rmApplied clear-num12.3
rmApplied *-un-lft-identity12.3
rmApplied *-un-lft-identity12.3
Applied *-un-lft-identity12.3
Applied times-frac12.3
Applied add-cube-cbrt12.3
Applied times-frac12.3
Simplified12.3
Simplified12.1
if 6.51740022507215e+112 < b_2 Initial program 49.8
rmApplied clear-num49.9
rmApplied *-un-lft-identity49.9
rmApplied *-un-lft-identity49.9
Applied *-un-lft-identity49.9
Applied times-frac49.9
Applied add-cube-cbrt49.9
Applied times-frac49.9
Simplified49.9
Simplified49.8
Taylor expanded around inf 2.8
Final simplification10.2
herbie shell --seed 2020064 +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))