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 r118350 = 2.0;
double r118351 = atan2(1.0, 0.0);
double r118352 = r118350 * r118351;
double r118353 = 3.0;
double r118354 = r118352 / r118353;
double r118355 = g;
double r118356 = -r118355;
double r118357 = h;
double r118358 = r118356 / r118357;
double r118359 = acos(r118358);
double r118360 = r118359 / r118353;
double r118361 = r118354 + r118360;
double r118362 = cos(r118361);
double r118363 = r118350 * r118362;
return r118363;
}
double f(double g, double h) {
double r118364 = 2.0;
double r118365 = atan2(1.0, 0.0);
double r118366 = r118364 * r118365;
double r118367 = 3.0;
double r118368 = r118366 / r118367;
double r118369 = r118365 / r118367;
double r118370 = r118368 + r118369;
double r118371 = cos(r118370);
double r118372 = g;
double r118373 = h;
double r118374 = r118372 / r118373;
double r118375 = acos(r118374);
double r118376 = r118375 / r118367;
double r118377 = cos(r118376);
double r118378 = r118371 * r118377;
double r118379 = sin(r118370);
double r118380 = sin(r118376);
double r118381 = r118379 * r118380;
double r118382 = r118378 + r118381;
double r118383 = r118364 * r118382;
return r118383;
}



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