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 r94362 = 2.0;
double r94363 = atan2(1.0, 0.0);
double r94364 = r94362 * r94363;
double r94365 = 3.0;
double r94366 = r94364 / r94365;
double r94367 = g;
double r94368 = -r94367;
double r94369 = h;
double r94370 = r94368 / r94369;
double r94371 = acos(r94370);
double r94372 = r94371 / r94365;
double r94373 = r94366 + r94372;
double r94374 = cos(r94373);
double r94375 = r94362 * r94374;
return r94375;
}
double f(double g, double h) {
double r94376 = 2.0;
double r94377 = atan2(1.0, 0.0);
double r94378 = r94376 * r94377;
double r94379 = 3.0;
double r94380 = r94378 / r94379;
double r94381 = r94377 / r94379;
double r94382 = r94380 + r94381;
double r94383 = cos(r94382);
double r94384 = g;
double r94385 = h;
double r94386 = r94384 / r94385;
double r94387 = acos(r94386);
double r94388 = r94387 / r94379;
double r94389 = cos(r94388);
double r94390 = r94383 * r94389;
double r94391 = sin(r94382);
double r94392 = sin(r94388);
double r94393 = r94391 * r94392;
double r94394 = r94390 + r94393;
double r94395 = r94376 * r94394;
return r94395;
}



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.1
Final simplification0.1
herbie shell --seed 2019303
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))