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 r75783 = 2.0;
double r75784 = atan2(1.0, 0.0);
double r75785 = r75783 * r75784;
double r75786 = 3.0;
double r75787 = r75785 / r75786;
double r75788 = g;
double r75789 = -r75788;
double r75790 = h;
double r75791 = r75789 / r75790;
double r75792 = acos(r75791);
double r75793 = r75792 / r75786;
double r75794 = r75787 + r75793;
double r75795 = cos(r75794);
double r75796 = r75783 * r75795;
return r75796;
}
double f(double g, double h) {
double r75797 = 2.0;
double r75798 = atan2(1.0, 0.0);
double r75799 = r75797 * r75798;
double r75800 = 3.0;
double r75801 = r75799 / r75800;
double r75802 = r75798 / r75800;
double r75803 = r75801 + r75802;
double r75804 = cos(r75803);
double r75805 = g;
double r75806 = h;
double r75807 = r75805 / r75806;
double r75808 = acos(r75807);
double r75809 = r75808 / r75800;
double r75810 = cos(r75809);
double r75811 = r75804 * r75810;
double r75812 = sin(r75803);
double r75813 = sin(r75809);
double r75814 = r75812 * r75813;
double r75815 = r75811 + r75814;
double r75816 = r75797 * r75815;
return r75816;
}



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