\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\frac{0 - \left(4 \cdot \left(a \cdot c\right)\right) \cdot \left(4 \cdot \left(a \cdot c\right)\right)}{0 - 4 \cdot \left(a \cdot c\right)}}{a}}{2 \cdot \left(\left(-b\right) - \sqrt{b \cdot b + \left(0 - 4 \cdot \left(a \cdot c\right)\right)}\right)}double f(double a, double b, double c) {
double r42573 = b;
double r42574 = -r42573;
double r42575 = r42573 * r42573;
double r42576 = 4.0;
double r42577 = a;
double r42578 = r42576 * r42577;
double r42579 = c;
double r42580 = r42578 * r42579;
double r42581 = r42575 - r42580;
double r42582 = sqrt(r42581);
double r42583 = r42574 + r42582;
double r42584 = 2.0;
double r42585 = r42584 * r42577;
double r42586 = r42583 / r42585;
return r42586;
}
double f(double a, double b, double c) {
double r42587 = 0.0;
double r42588 = 4.0;
double r42589 = a;
double r42590 = c;
double r42591 = r42589 * r42590;
double r42592 = r42588 * r42591;
double r42593 = r42592 * r42592;
double r42594 = r42587 - r42593;
double r42595 = r42587 - r42592;
double r42596 = r42594 / r42595;
double r42597 = r42596 / r42589;
double r42598 = 2.0;
double r42599 = b;
double r42600 = -r42599;
double r42601 = r42599 * r42599;
double r42602 = r42601 + r42595;
double r42603 = sqrt(r42602);
double r42604 = r42600 - r42603;
double r42605 = r42598 * r42604;
double r42606 = r42597 / r42605;
return r42606;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.7
rmApplied flip-+28.7
Simplified0.4
rmApplied sub-neg0.4
Simplified0.4
rmApplied flip-+0.5
Applied associate-/l/0.5
rmApplied *-un-lft-identity0.5
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
Final simplification0.4
herbie shell --seed 2019304
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:precision binary64
:pre (and (< 1.05367121277235087e-8 a 94906265.6242515594) (< 1.05367121277235087e-8 b 94906265.6242515594) (< 1.05367121277235087e-8 c 94906265.6242515594))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))