\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{4 \cdot \left(a \cdot c\right)}{\left(2 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{\frac{{b}^{4} - \left(4 \cdot \left(a \cdot c\right)\right) \cdot \left(4 \cdot \left(a \cdot c\right)\right)}{{\left(b \cdot b\right)}^{3} + {\left(\left(4 \cdot a\right) \cdot c\right)}^{3}} \cdot \left(\left(b \cdot b\right) \cdot \left(b \cdot b\right) + \left(\left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right) - \left(b \cdot b\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right)\right)\right)}\right)}double f(double a, double b, double c) {
double r42749 = b;
double r42750 = -r42749;
double r42751 = r42749 * r42749;
double r42752 = 4.0;
double r42753 = a;
double r42754 = r42752 * r42753;
double r42755 = c;
double r42756 = r42754 * r42755;
double r42757 = r42751 - r42756;
double r42758 = sqrt(r42757);
double r42759 = r42750 + r42758;
double r42760 = 2.0;
double r42761 = r42760 * r42753;
double r42762 = r42759 / r42761;
return r42762;
}
double f(double a, double b, double c) {
double r42763 = 4.0;
double r42764 = a;
double r42765 = c;
double r42766 = r42764 * r42765;
double r42767 = r42763 * r42766;
double r42768 = 2.0;
double r42769 = r42768 * r42764;
double r42770 = b;
double r42771 = -r42770;
double r42772 = 4.0;
double r42773 = pow(r42770, r42772);
double r42774 = r42767 * r42767;
double r42775 = r42773 - r42774;
double r42776 = r42770 * r42770;
double r42777 = 3.0;
double r42778 = pow(r42776, r42777);
double r42779 = r42763 * r42764;
double r42780 = r42779 * r42765;
double r42781 = pow(r42780, r42777);
double r42782 = r42778 + r42781;
double r42783 = r42775 / r42782;
double r42784 = r42776 * r42776;
double r42785 = r42780 * r42780;
double r42786 = r42776 * r42780;
double r42787 = r42785 - r42786;
double r42788 = r42784 + r42787;
double r42789 = r42783 * r42788;
double r42790 = sqrt(r42789);
double r42791 = r42771 - r42790;
double r42792 = r42769 * r42791;
double r42793 = r42767 / r42792;
return r42793;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 44.0
rmApplied flip-+44.0
Simplified0.4
rmApplied flip--0.4
Simplified0.4
rmApplied flip3-+0.4
Applied associate-/r/0.4
Final simplification0.4
herbie shell --seed 2019291
(FPCore (a b c)
:name "Quadratic roots, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e15) (< 1.11022e-16 b 9.0072e15) (< 1.11022e-16 c 9.0072e15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))