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 r160770 = 2.0;
double r160771 = atan2(1.0, 0.0);
double r160772 = r160770 * r160771;
double r160773 = 3.0;
double r160774 = r160772 / r160773;
double r160775 = g;
double r160776 = -r160775;
double r160777 = h;
double r160778 = r160776 / r160777;
double r160779 = acos(r160778);
double r160780 = r160779 / r160773;
double r160781 = r160774 + r160780;
double r160782 = cos(r160781);
double r160783 = r160770 * r160782;
return r160783;
}
double f(double g, double h) {
double r160784 = 2.0;
double r160785 = atan2(1.0, 0.0);
double r160786 = r160784 * r160785;
double r160787 = 3.0;
double r160788 = r160786 / r160787;
double r160789 = r160785 / r160787;
double r160790 = r160788 + r160789;
double r160791 = cos(r160790);
double r160792 = g;
double r160793 = h;
double r160794 = r160792 / r160793;
double r160795 = acos(r160794);
double r160796 = r160795 / r160787;
double r160797 = cos(r160796);
double r160798 = r160791 * r160797;
double r160799 = sin(r160790);
double r160800 = sin(r160796);
double r160801 = r160799 * r160800;
double r160802 = r160798 + r160801;
double r160803 = r160784 * r160802;
return r160803;
}



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