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 r74911 = 2.0;
double r74912 = atan2(1.0, 0.0);
double r74913 = r74911 * r74912;
double r74914 = 3.0;
double r74915 = r74913 / r74914;
double r74916 = g;
double r74917 = -r74916;
double r74918 = h;
double r74919 = r74917 / r74918;
double r74920 = acos(r74919);
double r74921 = r74920 / r74914;
double r74922 = r74915 + r74921;
double r74923 = cos(r74922);
double r74924 = r74911 * r74923;
return r74924;
}
double f(double g, double h) {
double r74925 = 2.0;
double r74926 = atan2(1.0, 0.0);
double r74927 = r74925 * r74926;
double r74928 = 3.0;
double r74929 = r74927 / r74928;
double r74930 = r74926 / r74928;
double r74931 = r74929 + r74930;
double r74932 = cos(r74931);
double r74933 = g;
double r74934 = h;
double r74935 = r74933 / r74934;
double r74936 = acos(r74935);
double r74937 = r74936 / r74928;
double r74938 = cos(r74937);
double r74939 = r74932 * r74938;
double r74940 = sin(r74931);
double r74941 = sin(r74937);
double r74942 = r74940 * r74941;
double r74943 = r74939 + r74942;
double r74944 = r74925 * r74943;
return r74944;
}



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.1
Final simplification0.1
herbie shell --seed 2019326
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))