\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{1}{\left(-b\right) - \sqrt{\frac{\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)}{b \cdot b + \left(4 \cdot a\right) \cdot c}}}}{a} \cdot \frac{\left(a \cdot c\right) \cdot 4}{2}double f(double a, double b, double c) {
double r38781 = b;
double r38782 = -r38781;
double r38783 = r38781 * r38781;
double r38784 = 4.0;
double r38785 = a;
double r38786 = r38784 * r38785;
double r38787 = c;
double r38788 = r38786 * r38787;
double r38789 = r38783 - r38788;
double r38790 = sqrt(r38789);
double r38791 = r38782 + r38790;
double r38792 = 2.0;
double r38793 = r38792 * r38785;
double r38794 = r38791 / r38793;
return r38794;
}
double f(double a, double b, double c) {
double r38795 = 1.0;
double r38796 = b;
double r38797 = -r38796;
double r38798 = r38796 * r38796;
double r38799 = r38798 * r38798;
double r38800 = 4.0;
double r38801 = a;
double r38802 = r38800 * r38801;
double r38803 = c;
double r38804 = r38802 * r38803;
double r38805 = r38804 * r38804;
double r38806 = r38799 - r38805;
double r38807 = r38798 + r38804;
double r38808 = r38806 / r38807;
double r38809 = sqrt(r38808);
double r38810 = r38797 - r38809;
double r38811 = r38795 / r38810;
double r38812 = r38811 / r38801;
double r38813 = r38801 * r38803;
double r38814 = r38813 * r38800;
double r38815 = 2.0;
double r38816 = r38814 / r38815;
double r38817 = r38812 * r38816;
return r38817;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.8
rmApplied flip-+28.8
Simplified0.4
rmApplied div-inv0.5
Applied times-frac0.5
Simplified0.5
rmApplied flip--0.5
Final simplification0.5
herbie shell --seed 2020045
(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)))