\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{1 \cdot \frac{4 \cdot a}{\frac{\left(-b\right) - \sqrt{\frac{{b}^{6} - {\left(\left(4 \cdot a\right) \cdot c\right)}^{3}}{\left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c + {b}^{2}\right) + \left(b \cdot b\right) \cdot \left(b \cdot b\right)}}}{c}}}{2 \cdot a}double f(double a, double b, double c) {
double r34615 = b;
double r34616 = -r34615;
double r34617 = r34615 * r34615;
double r34618 = 4.0;
double r34619 = a;
double r34620 = r34618 * r34619;
double r34621 = c;
double r34622 = r34620 * r34621;
double r34623 = r34617 - r34622;
double r34624 = sqrt(r34623);
double r34625 = r34616 + r34624;
double r34626 = 2.0;
double r34627 = r34626 * r34619;
double r34628 = r34625 / r34627;
return r34628;
}
double f(double a, double b, double c) {
double r34629 = 1.0;
double r34630 = 4.0;
double r34631 = a;
double r34632 = r34630 * r34631;
double r34633 = b;
double r34634 = -r34633;
double r34635 = 6.0;
double r34636 = pow(r34633, r34635);
double r34637 = c;
double r34638 = r34632 * r34637;
double r34639 = 3.0;
double r34640 = pow(r34638, r34639);
double r34641 = r34636 - r34640;
double r34642 = 2.0;
double r34643 = pow(r34633, r34642);
double r34644 = r34638 + r34643;
double r34645 = r34638 * r34644;
double r34646 = r34633 * r34633;
double r34647 = r34646 * r34646;
double r34648 = r34645 + r34647;
double r34649 = r34641 / r34648;
double r34650 = sqrt(r34649);
double r34651 = r34634 - r34650;
double r34652 = r34651 / r34637;
double r34653 = r34632 / r34652;
double r34654 = r34629 * r34653;
double r34655 = 2.0;
double r34656 = r34655 * r34631;
double r34657 = r34654 / r34656;
return r34657;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.2
rmApplied flip-+28.2
Simplified0.4
rmApplied flip3--0.5
Simplified0.5
Simplified0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020033
(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)))