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 r123405 = 2.0;
double r123406 = atan2(1.0, 0.0);
double r123407 = r123405 * r123406;
double r123408 = 3.0;
double r123409 = r123407 / r123408;
double r123410 = g;
double r123411 = -r123410;
double r123412 = h;
double r123413 = r123411 / r123412;
double r123414 = acos(r123413);
double r123415 = r123414 / r123408;
double r123416 = r123409 + r123415;
double r123417 = cos(r123416);
double r123418 = r123405 * r123417;
return r123418;
}
double f(double g, double h) {
double r123419 = 2.0;
double r123420 = atan2(1.0, 0.0);
double r123421 = r123419 * r123420;
double r123422 = 3.0;
double r123423 = r123421 / r123422;
double r123424 = r123420 / r123422;
double r123425 = r123423 + r123424;
double r123426 = cos(r123425);
double r123427 = g;
double r123428 = h;
double r123429 = r123427 / r123428;
double r123430 = acos(r123429);
double r123431 = r123430 / r123422;
double r123432 = cos(r123431);
double r123433 = r123426 * r123432;
double r123434 = sin(r123425);
double r123435 = sin(r123431);
double r123436 = r123434 * r123435;
double r123437 = r123433 + r123436;
double r123438 = r123419 * r123437;
return r123438;
}



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)))))