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 r171246 = 2.0;
double r171247 = atan2(1.0, 0.0);
double r171248 = r171246 * r171247;
double r171249 = 3.0;
double r171250 = r171248 / r171249;
double r171251 = g;
double r171252 = -r171251;
double r171253 = h;
double r171254 = r171252 / r171253;
double r171255 = acos(r171254);
double r171256 = r171255 / r171249;
double r171257 = r171250 + r171256;
double r171258 = cos(r171257);
double r171259 = r171246 * r171258;
return r171259;
}
double f(double g, double h) {
double r171260 = 2.0;
double r171261 = atan2(1.0, 0.0);
double r171262 = r171260 * r171261;
double r171263 = 3.0;
double r171264 = r171262 / r171263;
double r171265 = r171261 / r171263;
double r171266 = r171264 + r171265;
double r171267 = cos(r171266);
double r171268 = g;
double r171269 = h;
double r171270 = r171268 / r171269;
double r171271 = acos(r171270);
double r171272 = r171271 / r171263;
double r171273 = cos(r171272);
double r171274 = r171267 * r171273;
double r171275 = sin(r171266);
double r171276 = sin(r171272);
double r171277 = r171275 * r171276;
double r171278 = r171274 + r171277;
double r171279 = r171260 * r171278;
return r171279;
}



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