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 r153572 = 2.0;
double r153573 = atan2(1.0, 0.0);
double r153574 = r153572 * r153573;
double r153575 = 3.0;
double r153576 = r153574 / r153575;
double r153577 = g;
double r153578 = -r153577;
double r153579 = h;
double r153580 = r153578 / r153579;
double r153581 = acos(r153580);
double r153582 = r153581 / r153575;
double r153583 = r153576 + r153582;
double r153584 = cos(r153583);
double r153585 = r153572 * r153584;
return r153585;
}
double f(double g, double h) {
double r153586 = 2.0;
double r153587 = atan2(1.0, 0.0);
double r153588 = r153586 * r153587;
double r153589 = 3.0;
double r153590 = r153588 / r153589;
double r153591 = r153587 / r153589;
double r153592 = r153590 + r153591;
double r153593 = cos(r153592);
double r153594 = g;
double r153595 = h;
double r153596 = r153594 / r153595;
double r153597 = acos(r153596);
double r153598 = r153597 / r153589;
double r153599 = cos(r153598);
double r153600 = r153593 * r153599;
double r153601 = sin(r153592);
double r153602 = sin(r153598);
double r153603 = r153601 * r153602;
double r153604 = r153600 + r153603;
double r153605 = r153586 * r153604;
return r153605;
}



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