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 r140354 = 2.0;
double r140355 = atan2(1.0, 0.0);
double r140356 = r140354 * r140355;
double r140357 = 3.0;
double r140358 = r140356 / r140357;
double r140359 = g;
double r140360 = -r140359;
double r140361 = h;
double r140362 = r140360 / r140361;
double r140363 = acos(r140362);
double r140364 = r140363 / r140357;
double r140365 = r140358 + r140364;
double r140366 = cos(r140365);
double r140367 = r140354 * r140366;
return r140367;
}
double f(double g, double h) {
double r140368 = 2.0;
double r140369 = atan2(1.0, 0.0);
double r140370 = r140368 * r140369;
double r140371 = 3.0;
double r140372 = r140370 / r140371;
double r140373 = r140369 / r140371;
double r140374 = r140372 + r140373;
double r140375 = cos(r140374);
double r140376 = g;
double r140377 = h;
double r140378 = r140376 / r140377;
double r140379 = acos(r140378);
double r140380 = r140379 / r140371;
double r140381 = cos(r140380);
double r140382 = r140375 * r140381;
double r140383 = sin(r140374);
double r140384 = sin(r140380);
double r140385 = r140383 * r140384;
double r140386 = r140382 + r140385;
double r140387 = r140368 * r140386;
return r140387;
}



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