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{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right) \cdot \frac{1}{2} + \frac{\sqrt{3}}{2} \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right)\right)double f(double g, double h) {
double r7647970 = 2.0;
double r7647971 = atan2(1.0, 0.0);
double r7647972 = r7647970 * r7647971;
double r7647973 = 3.0;
double r7647974 = r7647972 / r7647973;
double r7647975 = g;
double r7647976 = -r7647975;
double r7647977 = h;
double r7647978 = r7647976 / r7647977;
double r7647979 = acos(r7647978);
double r7647980 = r7647979 / r7647973;
double r7647981 = r7647974 + r7647980;
double r7647982 = cos(r7647981);
double r7647983 = r7647970 * r7647982;
return r7647983;
}
double f(double g, double h) {
double r7647984 = 2.0;
double r7647985 = g;
double r7647986 = h;
double r7647987 = r7647985 / r7647986;
double r7647988 = acos(r7647987);
double r7647989 = 3.0;
double r7647990 = r7647988 / r7647989;
double r7647991 = atan2(1.0, 0.0);
double r7647992 = 1.5;
double r7647993 = r7647991 / r7647992;
double r7647994 = r7647990 - r7647993;
double r7647995 = cos(r7647994);
double r7647996 = 0.5;
double r7647997 = r7647995 * r7647996;
double r7647998 = sqrt(r7647989);
double r7647999 = r7647998 / r7647984;
double r7648000 = sin(r7647994);
double r7648001 = r7647999 * r7648000;
double r7648002 = r7647997 + r7648001;
double r7648003 = r7647984 * r7648002;
return r7648003;
}



Bits error versus g



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