2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right) \cdot \sin \left(\frac{\pi}{3}\right) + \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3} - \frac{\pi}{\frac{3}{2}}\right) \cdot \frac{1}{2}\right)double f(double g, double h) {
double r14314885 = 2.0;
double r14314886 = atan2(1.0, 0.0);
double r14314887 = r14314885 * r14314886;
double r14314888 = 3.0;
double r14314889 = r14314887 / r14314888;
double r14314890 = g;
double r14314891 = -r14314890;
double r14314892 = h;
double r14314893 = r14314891 / r14314892;
double r14314894 = acos(r14314893);
double r14314895 = r14314894 / r14314888;
double r14314896 = r14314889 + r14314895;
double r14314897 = cos(r14314896);
double r14314898 = r14314885 * r14314897;
return r14314898;
}
double f(double g, double h) {
double r14314899 = 2.0;
double r14314900 = g;
double r14314901 = h;
double r14314902 = r14314900 / r14314901;
double r14314903 = acos(r14314902);
double r14314904 = 3.0;
double r14314905 = r14314903 / r14314904;
double r14314906 = atan2(1.0, 0.0);
double r14314907 = 1.5;
double r14314908 = r14314906 / r14314907;
double r14314909 = r14314905 - r14314908;
double r14314910 = sin(r14314909);
double r14314911 = r14314906 / r14314904;
double r14314912 = sin(r14314911);
double r14314913 = r14314910 * r14314912;
double r14314914 = cos(r14314909);
double r14314915 = 0.5;
double r14314916 = r14314914 * r14314915;
double r14314917 = r14314913 + r14314916;
double r14314918 = r14314899 * r14314917;
return r14314918;
}



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