\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\frac{4 \cdot \left(a \cdot c\right)}{2}}{a}}{\left(-b\right) - \frac{\sqrt{\left(b \cdot b\right) \cdot \left(b \cdot b\right) - \left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right)}}{\sqrt{b \cdot b + \left(4 \cdot a\right) \cdot c}}}double f(double a, double b, double c) {
double r36900 = b;
double r36901 = -r36900;
double r36902 = r36900 * r36900;
double r36903 = 4.0;
double r36904 = a;
double r36905 = r36903 * r36904;
double r36906 = c;
double r36907 = r36905 * r36906;
double r36908 = r36902 - r36907;
double r36909 = sqrt(r36908);
double r36910 = r36901 + r36909;
double r36911 = 2.0;
double r36912 = r36911 * r36904;
double r36913 = r36910 / r36912;
return r36913;
}
double f(double a, double b, double c) {
double r36914 = 4.0;
double r36915 = a;
double r36916 = c;
double r36917 = r36915 * r36916;
double r36918 = r36914 * r36917;
double r36919 = 2.0;
double r36920 = r36918 / r36919;
double r36921 = r36920 / r36915;
double r36922 = b;
double r36923 = -r36922;
double r36924 = r36922 * r36922;
double r36925 = r36924 * r36924;
double r36926 = r36914 * r36915;
double r36927 = r36926 * r36916;
double r36928 = r36927 * r36927;
double r36929 = r36925 - r36928;
double r36930 = sqrt(r36929);
double r36931 = r36924 + r36927;
double r36932 = sqrt(r36931);
double r36933 = r36930 / r36932;
double r36934 = r36923 - r36933;
double r36935 = r36921 / r36934;
return r36935;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.4
rmApplied flip-+28.4
Simplified0.5
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.5
rmApplied associate-/r*0.4
Simplified0.4
rmApplied flip--0.4
Applied sqrt-div0.4
Final simplification0.4
herbie shell --seed 2020036 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:precision binary64
:pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))