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 r83807 = 2.0;
double r83808 = atan2(1.0, 0.0);
double r83809 = r83807 * r83808;
double r83810 = 3.0;
double r83811 = r83809 / r83810;
double r83812 = g;
double r83813 = -r83812;
double r83814 = h;
double r83815 = r83813 / r83814;
double r83816 = acos(r83815);
double r83817 = r83816 / r83810;
double r83818 = r83811 + r83817;
double r83819 = cos(r83818);
double r83820 = r83807 * r83819;
return r83820;
}
double f(double g, double h) {
double r83821 = 2.0;
double r83822 = atan2(1.0, 0.0);
double r83823 = r83821 * r83822;
double r83824 = 3.0;
double r83825 = r83823 / r83824;
double r83826 = r83822 / r83824;
double r83827 = r83825 + r83826;
double r83828 = cos(r83827);
double r83829 = g;
double r83830 = h;
double r83831 = r83829 / r83830;
double r83832 = acos(r83831);
double r83833 = r83832 / r83824;
double r83834 = cos(r83833);
double r83835 = r83828 * r83834;
double r83836 = sin(r83827);
double r83837 = sin(r83833);
double r83838 = r83836 * r83837;
double r83839 = r83835 + r83838;
double r83840 = r83821 * r83839;
return r83840;
}



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)))))