2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \cos \left((\frac{2}{3} \cdot \pi + \left(\frac{\frac{\cos^{-1} \left(\frac{-g}{h}\right)}{\sqrt{3}}}{\sqrt{3}}\right))_*\right)double f(double g, double h) {
double r19216534 = 2.0;
double r19216535 = atan2(1.0, 0.0);
double r19216536 = r19216534 * r19216535;
double r19216537 = 3.0;
double r19216538 = r19216536 / r19216537;
double r19216539 = g;
double r19216540 = -r19216539;
double r19216541 = h;
double r19216542 = r19216540 / r19216541;
double r19216543 = acos(r19216542);
double r19216544 = r19216543 / r19216537;
double r19216545 = r19216538 + r19216544;
double r19216546 = cos(r19216545);
double r19216547 = r19216534 * r19216546;
return r19216547;
}
double f(double g, double h) {
double r19216548 = 2.0;
double r19216549 = 0.6666666666666666;
double r19216550 = atan2(1.0, 0.0);
double r19216551 = g;
double r19216552 = -r19216551;
double r19216553 = h;
double r19216554 = r19216552 / r19216553;
double r19216555 = acos(r19216554);
double r19216556 = 3.0;
double r19216557 = sqrt(r19216556);
double r19216558 = r19216555 / r19216557;
double r19216559 = r19216558 / r19216557;
double r19216560 = fma(r19216549, r19216550, r19216559);
double r19216561 = cos(r19216560);
double r19216562 = r19216548 * r19216561;
return r19216562;
}



Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied add-sqr-sqrt1.0
Applied associate-/r*1.0
Final simplification1.0
herbie shell --seed 2019112 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))