2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\pi}{3}\right) - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right) \cdot \cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\pi}{3}\right) - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)} \cdot \sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\pi}{3}\right) - \frac{\cos^{-1} \left(\frac{g}{h}\right)}{3}\right)}\right)double f(double g, double h) {
double r155510 = 2.0;
double r155511 = atan2(1.0, 0.0);
double r155512 = r155510 * r155511;
double r155513 = 3.0;
double r155514 = r155512 / r155513;
double r155515 = g;
double r155516 = -r155515;
double r155517 = h;
double r155518 = r155516 / r155517;
double r155519 = acos(r155518);
double r155520 = r155519 / r155513;
double r155521 = r155514 + r155520;
double r155522 = cos(r155521);
double r155523 = r155510 * r155522;
return r155523;
}
double f(double g, double h) {
double r155524 = 2.0;
double r155525 = 3.0;
double r155526 = r155524 / r155525;
double r155527 = atan2(1.0, 0.0);
double r155528 = r155527 / r155525;
double r155529 = fma(r155526, r155527, r155528);
double r155530 = g;
double r155531 = h;
double r155532 = r155530 / r155531;
double r155533 = acos(r155532);
double r155534 = r155533 / r155525;
double r155535 = r155529 - r155534;
double r155536 = cos(r155535);
double r155537 = r155536 * r155536;
double r155538 = cbrt(r155537);
double r155539 = cbrt(r155536);
double r155540 = r155538 * r155539;
double r155541 = r155524 * r155540;
return r155541;
}



Bits error versus g



Bits error versus h
Initial program 1.0
rmApplied distribute-frac-neg1.0
Applied acos-neg1.0
Applied div-sub1.0
Applied associate-+r-1.0
Simplified1.0
rmApplied add-cbrt-cube1.0
Simplified1.0
rmApplied add-cube-cbrt1.0
Applied unpow-prod-down1.0
Applied cbrt-prod0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020034 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))