2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{2 \cdot \pi}{3} + \frac{\pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)double f(double g, double h) {
double r121878 = 2.0;
double r121879 = atan2(1.0, 0.0);
double r121880 = r121878 * r121879;
double r121881 = 3.0;
double r121882 = r121880 / r121881;
double r121883 = g;
double r121884 = -r121883;
double r121885 = h;
double r121886 = r121884 / r121885;
double r121887 = acos(r121886);
double r121888 = r121887 / r121881;
double r121889 = r121882 + r121888;
double r121890 = cos(r121889);
double r121891 = r121878 * r121890;
return r121891;
}
double f(double g, double h) {
double r121892 = 2.0;
double r121893 = atan2(1.0, 0.0);
double r121894 = r121892 * r121893;
double r121895 = 3.0;
double r121896 = r121894 / r121895;
double r121897 = r121893 / r121895;
double r121898 = r121896 + r121897;
double r121899 = cos(r121898);
double r121900 = g;
double r121901 = h;
double r121902 = r121900 / r121901;
double r121903 = acos(r121902);
double r121904 = r121903 / r121895;
double r121905 = cos(r121904);
double r121906 = r121899 * r121905;
double r121907 = sin(r121898);
double r121908 = sin(r121904);
double r121909 = r121907 * r121908;
double r121910 = r121906 + r121909;
double r121911 = r121892 * r121910;
return r121911;
}



Bits error versus g



Bits error versus h
Results
Initial program 1.0
rmApplied distribute-frac-neg1.0
Applied acos-neg1.0
Applied div-sub1.0
Applied associate-+r-1.0
Applied cos-diff0.0
Final simplification0.0
herbie shell --seed 2020035
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))