\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{1}{\sqrt[3]{2} \cdot \left(\sqrt[3]{\sqrt[3]{2}} \cdot \left(\sqrt[3]{\sqrt[3]{2}} \cdot \sqrt[3]{\sqrt[3]{2}}\right)\right)}}{\frac{a}{\frac{(\left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}{\sqrt[3]{\sqrt[3]{2}} \cdot \left(\sqrt[3]{\sqrt[3]{2}} \cdot \sqrt[3]{\sqrt[3]{2}}\right)}}}double f(double a, double b, double c) {
double r3300763 = b;
double r3300764 = -r3300763;
double r3300765 = r3300763 * r3300763;
double r3300766 = 4.0;
double r3300767 = a;
double r3300768 = r3300766 * r3300767;
double r3300769 = c;
double r3300770 = r3300768 * r3300769;
double r3300771 = r3300765 - r3300770;
double r3300772 = sqrt(r3300771);
double r3300773 = r3300764 + r3300772;
double r3300774 = 2.0;
double r3300775 = r3300774 * r3300767;
double r3300776 = r3300773 / r3300775;
return r3300776;
}
double f(double a, double b, double c) {
double r3300777 = 1.0;
double r3300778 = 2.0;
double r3300779 = cbrt(r3300778);
double r3300780 = cbrt(r3300779);
double r3300781 = r3300780 * r3300780;
double r3300782 = r3300780 * r3300781;
double r3300783 = r3300779 * r3300782;
double r3300784 = r3300777 / r3300783;
double r3300785 = a;
double r3300786 = c;
double r3300787 = -4.0;
double r3300788 = r3300785 * r3300787;
double r3300789 = b;
double r3300790 = r3300789 * r3300789;
double r3300791 = fma(r3300786, r3300788, r3300790);
double r3300792 = sqrt(r3300791);
double r3300793 = sqrt(r3300792);
double r3300794 = -r3300789;
double r3300795 = fma(r3300793, r3300793, r3300794);
double r3300796 = r3300795 / r3300782;
double r3300797 = r3300785 / r3300796;
double r3300798 = r3300784 / r3300797;
return r3300798;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 44.2
Simplified44.2
rmApplied add-sqr-sqrt44.2
Applied fma-neg43.5
rmApplied add-cube-cbrt43.6
Applied *-un-lft-identity43.6
Applied times-frac43.6
Applied associate-/l*43.6
rmApplied add-cube-cbrt43.6
rmApplied add-cube-cbrt43.6
Final simplification43.6
herbie shell --seed 2019104 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))