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 r126814 = 2.0;
double r126815 = atan2(1.0, 0.0);
double r126816 = r126814 * r126815;
double r126817 = 3.0;
double r126818 = r126816 / r126817;
double r126819 = g;
double r126820 = -r126819;
double r126821 = h;
double r126822 = r126820 / r126821;
double r126823 = acos(r126822);
double r126824 = r126823 / r126817;
double r126825 = r126818 + r126824;
double r126826 = cos(r126825);
double r126827 = r126814 * r126826;
return r126827;
}
double f(double g, double h) {
double r126828 = 2.0;
double r126829 = atan2(1.0, 0.0);
double r126830 = r126828 * r126829;
double r126831 = 3.0;
double r126832 = r126830 / r126831;
double r126833 = r126829 / r126831;
double r126834 = r126832 + r126833;
double r126835 = cos(r126834);
double r126836 = g;
double r126837 = h;
double r126838 = r126836 / r126837;
double r126839 = acos(r126838);
double r126840 = r126839 / r126831;
double r126841 = cos(r126840);
double r126842 = r126835 * r126841;
double r126843 = sin(r126834);
double r126844 = sin(r126840);
double r126845 = r126843 * r126844;
double r126846 = r126842 + r126845;
double r126847 = r126828 * r126846;
return r126847;
}



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