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 r117970 = 2.0;
double r117971 = atan2(1.0, 0.0);
double r117972 = r117970 * r117971;
double r117973 = 3.0;
double r117974 = r117972 / r117973;
double r117975 = g;
double r117976 = -r117975;
double r117977 = h;
double r117978 = r117976 / r117977;
double r117979 = acos(r117978);
double r117980 = r117979 / r117973;
double r117981 = r117974 + r117980;
double r117982 = cos(r117981);
double r117983 = r117970 * r117982;
return r117983;
}
double f(double g, double h) {
double r117984 = 2.0;
double r117985 = atan2(1.0, 0.0);
double r117986 = r117984 * r117985;
double r117987 = 3.0;
double r117988 = r117986 / r117987;
double r117989 = r117985 / r117987;
double r117990 = r117988 + r117989;
double r117991 = cos(r117990);
double r117992 = g;
double r117993 = h;
double r117994 = r117992 / r117993;
double r117995 = acos(r117994);
double r117996 = r117995 / r117987;
double r117997 = cos(r117996);
double r117998 = r117991 * r117997;
double r117999 = sin(r117990);
double r118000 = sin(r117996);
double r118001 = r117999 * r118000;
double r118002 = r117998 + r118001;
double r118003 = r117984 * r118002;
return r118003;
}



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 2020042
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))