\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{c \cdot \left(4 \cdot a\right)}{\left(a \cdot 2\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}double f(double a, double b, double c) {
double r42812 = b;
double r42813 = -r42812;
double r42814 = r42812 * r42812;
double r42815 = 4.0;
double r42816 = a;
double r42817 = r42815 * r42816;
double r42818 = c;
double r42819 = r42817 * r42818;
double r42820 = r42814 - r42819;
double r42821 = sqrt(r42820);
double r42822 = r42813 + r42821;
double r42823 = 2.0;
double r42824 = r42823 * r42816;
double r42825 = r42822 / r42824;
return r42825;
}
double f(double a, double b, double c) {
double r42826 = c;
double r42827 = 4.0;
double r42828 = a;
double r42829 = r42827 * r42828;
double r42830 = r42826 * r42829;
double r42831 = 2.0;
double r42832 = r42828 * r42831;
double r42833 = b;
double r42834 = -r42833;
double r42835 = r42833 * r42833;
double r42836 = r42829 * r42826;
double r42837 = r42835 - r42836;
double r42838 = sqrt(r42837);
double r42839 = r42834 - r42838;
double r42840 = r42832 * r42839;
double r42841 = r42830 / r42840;
return r42841;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.9
rmApplied flip-+43.9
Simplified0.4
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019199
(FPCore (a b c)
:name "Quadratic roots, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))