\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{1}{2} \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{a}}{\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)}{b \cdot b + \left(4 \cdot a\right) \cdot c}}}double f(double a, double b, double c) {
double r37723 = b;
double r37724 = -r37723;
double r37725 = r37723 * r37723;
double r37726 = 4.0;
double r37727 = a;
double r37728 = r37726 * r37727;
double r37729 = c;
double r37730 = r37728 * r37729;
double r37731 = r37725 - r37730;
double r37732 = sqrt(r37731);
double r37733 = r37724 + r37732;
double r37734 = 2.0;
double r37735 = r37734 * r37727;
double r37736 = r37733 / r37735;
return r37736;
}
double f(double a, double b, double c) {
double r37737 = 1.0;
double r37738 = 2.0;
double r37739 = r37737 / r37738;
double r37740 = 4.0;
double r37741 = a;
double r37742 = c;
double r37743 = r37741 * r37742;
double r37744 = r37740 * r37743;
double r37745 = r37744 / r37741;
double r37746 = b;
double r37747 = -r37746;
double r37748 = 4.0;
double r37749 = pow(r37746, r37748);
double r37750 = r37744 * r37744;
double r37751 = r37749 - r37750;
double r37752 = r37746 * r37746;
double r37753 = r37740 * r37741;
double r37754 = r37753 * r37742;
double r37755 = r37752 + r37754;
double r37756 = r37751 / r37755;
double r37757 = sqrt(r37756);
double r37758 = r37747 - r37757;
double r37759 = r37745 / r37758;
double r37760 = r37739 * r37759;
return r37760;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 44.0
rmApplied flip-+44.1
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.4
Simplified0.4
Simplified0.4
rmApplied associate-/r*0.2
rmApplied flip--0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019322
(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)))