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 r108472 = 2.0;
double r108473 = atan2(1.0, 0.0);
double r108474 = r108472 * r108473;
double r108475 = 3.0;
double r108476 = r108474 / r108475;
double r108477 = g;
double r108478 = -r108477;
double r108479 = h;
double r108480 = r108478 / r108479;
double r108481 = acos(r108480);
double r108482 = r108481 / r108475;
double r108483 = r108476 + r108482;
double r108484 = cos(r108483);
double r108485 = r108472 * r108484;
return r108485;
}
double f(double g, double h) {
double r108486 = 2.0;
double r108487 = atan2(1.0, 0.0);
double r108488 = r108486 * r108487;
double r108489 = 3.0;
double r108490 = r108488 / r108489;
double r108491 = r108487 / r108489;
double r108492 = r108490 + r108491;
double r108493 = cos(r108492);
double r108494 = g;
double r108495 = h;
double r108496 = r108494 / r108495;
double r108497 = acos(r108496);
double r108498 = r108497 / r108489;
double r108499 = cos(r108498);
double r108500 = r108493 * r108499;
double r108501 = sin(r108492);
double r108502 = sin(r108498);
double r108503 = r108501 * r108502;
double r108504 = r108500 + r108503;
double r108505 = r108486 * r108504;
return r108505;
}



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