\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{0 + 4 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{\frac{{b}^{6} - {\left({\left(\left(4 \cdot a\right) \cdot c\right)}^{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)}\right)}^{\left(\sqrt[3]{3}\right)}}{\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)}}}}{2 \cdot a}double f(double a, double b, double c) {
double r38711 = b;
double r38712 = -r38711;
double r38713 = r38711 * r38711;
double r38714 = 4.0;
double r38715 = a;
double r38716 = r38714 * r38715;
double r38717 = c;
double r38718 = r38716 * r38717;
double r38719 = r38713 - r38718;
double r38720 = sqrt(r38719);
double r38721 = r38712 + r38720;
double r38722 = 2.0;
double r38723 = r38722 * r38715;
double r38724 = r38721 / r38723;
return r38724;
}
double f(double a, double b, double c) {
double r38725 = 0.0;
double r38726 = 4.0;
double r38727 = a;
double r38728 = c;
double r38729 = r38727 * r38728;
double r38730 = r38726 * r38729;
double r38731 = r38725 + r38730;
double r38732 = b;
double r38733 = -r38732;
double r38734 = 6.0;
double r38735 = pow(r38732, r38734);
double r38736 = r38726 * r38727;
double r38737 = r38736 * r38728;
double r38738 = 3.0;
double r38739 = cbrt(r38738);
double r38740 = r38739 * r38739;
double r38741 = pow(r38737, r38740);
double r38742 = pow(r38741, r38739);
double r38743 = r38735 - r38742;
double r38744 = 2.0;
double r38745 = pow(r38732, r38744);
double r38746 = r38737 + r38745;
double r38747 = r38737 * r38746;
double r38748 = r38732 * r38732;
double r38749 = r38748 * r38748;
double r38750 = r38747 + r38749;
double r38751 = r38743 / r38750;
double r38752 = sqrt(r38751);
double r38753 = r38733 - r38752;
double r38754 = r38731 / r38753;
double r38755 = 2.0;
double r38756 = r38755 * r38727;
double r38757 = r38754 / r38756;
return r38757;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.4
rmApplied flip-+43.4
Simplified0.4
rmApplied flip3--0.4
Simplified0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied pow-unpow0.5
Final simplification0.5
herbie shell --seed 2020020
(FPCore (a b c)
:name "Quadratic roots, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e+15) (< 1.11022e-16 b 9.0072e+15) (< 1.11022e-16 c 9.0072e+15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))