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 r138770 = 2.0;
double r138771 = atan2(1.0, 0.0);
double r138772 = r138770 * r138771;
double r138773 = 3.0;
double r138774 = r138772 / r138773;
double r138775 = g;
double r138776 = -r138775;
double r138777 = h;
double r138778 = r138776 / r138777;
double r138779 = acos(r138778);
double r138780 = r138779 / r138773;
double r138781 = r138774 + r138780;
double r138782 = cos(r138781);
double r138783 = r138770 * r138782;
return r138783;
}
double f(double g, double h) {
double r138784 = 2.0;
double r138785 = atan2(1.0, 0.0);
double r138786 = r138784 * r138785;
double r138787 = 3.0;
double r138788 = r138786 / r138787;
double r138789 = r138785 / r138787;
double r138790 = r138788 + r138789;
double r138791 = cos(r138790);
double r138792 = g;
double r138793 = h;
double r138794 = r138792 / r138793;
double r138795 = acos(r138794);
double r138796 = r138795 / r138787;
double r138797 = cos(r138796);
double r138798 = r138791 * r138797;
double r138799 = sin(r138790);
double r138800 = sin(r138796);
double r138801 = r138799 * r138800;
double r138802 = r138798 + r138801;
double r138803 = r138784 * r138802;
return r138803;
}



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