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 r114646 = 2.0;
double r114647 = atan2(1.0, 0.0);
double r114648 = r114646 * r114647;
double r114649 = 3.0;
double r114650 = r114648 / r114649;
double r114651 = g;
double r114652 = -r114651;
double r114653 = h;
double r114654 = r114652 / r114653;
double r114655 = acos(r114654);
double r114656 = r114655 / r114649;
double r114657 = r114650 + r114656;
double r114658 = cos(r114657);
double r114659 = r114646 * r114658;
return r114659;
}
double f(double g, double h) {
double r114660 = 2.0;
double r114661 = atan2(1.0, 0.0);
double r114662 = r114660 * r114661;
double r114663 = 3.0;
double r114664 = r114662 / r114663;
double r114665 = r114661 / r114663;
double r114666 = r114664 + r114665;
double r114667 = cos(r114666);
double r114668 = g;
double r114669 = h;
double r114670 = r114668 / r114669;
double r114671 = acos(r114670);
double r114672 = r114671 / r114663;
double r114673 = cos(r114672);
double r114674 = r114667 * r114673;
double r114675 = sin(r114666);
double r114676 = sin(r114672);
double r114677 = r114675 * r114676;
double r114678 = r114674 + r114677;
double r114679 = r114660 * r114678;
return r114679;
}



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