\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}double f(double g, double h, double a) {
double r111749 = 1.0;
double r111750 = 2.0;
double r111751 = a;
double r111752 = r111750 * r111751;
double r111753 = r111749 / r111752;
double r111754 = g;
double r111755 = -r111754;
double r111756 = r111754 * r111754;
double r111757 = h;
double r111758 = r111757 * r111757;
double r111759 = r111756 - r111758;
double r111760 = sqrt(r111759);
double r111761 = r111755 + r111760;
double r111762 = r111753 * r111761;
double r111763 = cbrt(r111762);
double r111764 = r111755 - r111760;
double r111765 = r111753 * r111764;
double r111766 = cbrt(r111765);
double r111767 = r111763 + r111766;
return r111767;
}
double f(double g, double h, double a) {
double r111768 = 1.0;
double r111769 = 2.0;
double r111770 = a;
double r111771 = r111769 * r111770;
double r111772 = r111768 / r111771;
double r111773 = cbrt(r111772);
double r111774 = g;
double r111775 = r111774 * r111774;
double r111776 = h;
double r111777 = r111776 * r111776;
double r111778 = r111775 - r111777;
double r111779 = sqrt(r111778);
double r111780 = r111779 - r111774;
double r111781 = cbrt(r111780);
double r111782 = r111773 * r111781;
double r111783 = -r111774;
double r111784 = r111783 - r111779;
double r111785 = cbrt(r111784);
double r111786 = r111773 * r111785;
double r111787 = r111782 + r111786;
return r111787;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.9
rmApplied cbrt-prod33.9
Simplified33.9
rmApplied cbrt-prod32.1
Final simplification32.1
herbie shell --seed 2019199 +o rules:numerics
(FPCore (g h a)
:name "2-ancestry mixing, positive discriminant"
(+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))