\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)}\frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}double f(double g, double h, double a) {
double r95809 = 1.0;
double r95810 = 2.0;
double r95811 = a;
double r95812 = r95810 * r95811;
double r95813 = r95809 / r95812;
double r95814 = g;
double r95815 = -r95814;
double r95816 = r95814 * r95814;
double r95817 = h;
double r95818 = r95817 * r95817;
double r95819 = r95816 - r95818;
double r95820 = sqrt(r95819);
double r95821 = r95815 + r95820;
double r95822 = r95813 * r95821;
double r95823 = cbrt(r95822);
double r95824 = r95815 - r95820;
double r95825 = r95813 * r95824;
double r95826 = cbrt(r95825);
double r95827 = r95823 + r95826;
return r95827;
}
double f(double g, double h, double a) {
double r95828 = 1.0;
double r95829 = g;
double r95830 = r95829 * r95829;
double r95831 = h;
double r95832 = r95831 * r95831;
double r95833 = r95830 - r95832;
double r95834 = sqrt(r95833);
double r95835 = r95834 - r95829;
double r95836 = r95828 * r95835;
double r95837 = cbrt(r95836);
double r95838 = 2.0;
double r95839 = a;
double r95840 = r95838 * r95839;
double r95841 = cbrt(r95840);
double r95842 = r95837 / r95841;
double r95843 = -r95829;
double r95844 = r95843 - r95834;
double r95845 = r95828 * r95844;
double r95846 = cbrt(r95845);
double r95847 = r95846 / r95841;
double r95848 = r95842 + r95847;
return r95848;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.0
rmApplied associate-*l/36.0
Applied cbrt-div34.1
rmApplied associate-*l/34.1
Applied cbrt-div32.2
Simplified32.2
Final simplification32.2
herbie shell --seed 2019235 +o rules:numerics
(FPCore (g h a)
:name "2-ancestry mixing, positive discriminant"
:precision binary64
(+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))