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{\pi}{3} + \frac{2 \cdot \pi}{3}\right) \cdot \cos \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) + \sin \left(\frac{\pi}{3} + \frac{2 \cdot \pi}{3}\right) \cdot \sin \left(\frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)\right)double f(double g, double h) {
double r6984838 = 2.0;
double r6984839 = atan2(1.0, 0.0);
double r6984840 = r6984838 * r6984839;
double r6984841 = 3.0;
double r6984842 = r6984840 / r6984841;
double r6984843 = g;
double r6984844 = -r6984843;
double r6984845 = h;
double r6984846 = r6984844 / r6984845;
double r6984847 = acos(r6984846);
double r6984848 = r6984847 / r6984841;
double r6984849 = r6984842 + r6984848;
double r6984850 = cos(r6984849);
double r6984851 = r6984838 * r6984850;
return r6984851;
}
double f(double g, double h) {
double r6984852 = 2.0;
double r6984853 = atan2(1.0, 0.0);
double r6984854 = 3.0;
double r6984855 = r6984853 / r6984854;
double r6984856 = r6984852 * r6984853;
double r6984857 = r6984856 / r6984854;
double r6984858 = r6984855 + r6984857;
double r6984859 = cos(r6984858);
double r6984860 = g;
double r6984861 = h;
double r6984862 = r6984860 / r6984861;
double r6984863 = acos(r6984862);
double r6984864 = r6984863 / r6984854;
double r6984865 = cos(r6984864);
double r6984866 = r6984859 * r6984865;
double r6984867 = sin(r6984858);
double r6984868 = sin(r6984864);
double r6984869 = r6984867 * r6984868;
double r6984870 = r6984866 + r6984869;
double r6984871 = r6984852 * r6984870;
return r6984871;
}



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