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 r158443 = 2.0;
double r158444 = atan2(1.0, 0.0);
double r158445 = r158443 * r158444;
double r158446 = 3.0;
double r158447 = r158445 / r158446;
double r158448 = g;
double r158449 = -r158448;
double r158450 = h;
double r158451 = r158449 / r158450;
double r158452 = acos(r158451);
double r158453 = r158452 / r158446;
double r158454 = r158447 + r158453;
double r158455 = cos(r158454);
double r158456 = r158443 * r158455;
return r158456;
}
double f(double g, double h) {
double r158457 = 2.0;
double r158458 = atan2(1.0, 0.0);
double r158459 = r158457 * r158458;
double r158460 = 3.0;
double r158461 = r158459 / r158460;
double r158462 = r158458 / r158460;
double r158463 = r158461 + r158462;
double r158464 = cos(r158463);
double r158465 = g;
double r158466 = h;
double r158467 = r158465 / r158466;
double r158468 = acos(r158467);
double r158469 = r158468 / r158460;
double r158470 = cos(r158469);
double r158471 = r158464 * r158470;
double r158472 = sin(r158463);
double r158473 = sin(r158469);
double r158474 = r158472 * r158473;
double r158475 = r158471 + r158474;
double r158476 = r158457 * r158475;
return r158476;
}



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