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 r123589 = 2.0;
double r123590 = atan2(1.0, 0.0);
double r123591 = r123589 * r123590;
double r123592 = 3.0;
double r123593 = r123591 / r123592;
double r123594 = g;
double r123595 = -r123594;
double r123596 = h;
double r123597 = r123595 / r123596;
double r123598 = acos(r123597);
double r123599 = r123598 / r123592;
double r123600 = r123593 + r123599;
double r123601 = cos(r123600);
double r123602 = r123589 * r123601;
return r123602;
}
double f(double g, double h) {
double r123603 = 2.0;
double r123604 = atan2(1.0, 0.0);
double r123605 = r123603 * r123604;
double r123606 = 3.0;
double r123607 = r123605 / r123606;
double r123608 = r123604 / r123606;
double r123609 = r123607 + r123608;
double r123610 = cos(r123609);
double r123611 = g;
double r123612 = h;
double r123613 = r123611 / r123612;
double r123614 = acos(r123613);
double r123615 = r123614 / r123606;
double r123616 = cos(r123615);
double r123617 = r123610 * r123616;
double r123618 = sin(r123609);
double r123619 = sin(r123615);
double r123620 = r123618 * r123619;
double r123621 = r123617 + r123620;
double r123622 = r123603 * r123621;
return r123622;
}



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