2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\left(\log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}} \cdot \sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}}\right) + \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}}\right)\right) \cdot 2double f(double g, double h) {
double r4087551 = 2.0;
double r4087552 = atan2(1.0, 0.0);
double r4087553 = r4087551 * r4087552;
double r4087554 = 3.0;
double r4087555 = r4087553 / r4087554;
double r4087556 = g;
double r4087557 = -r4087556;
double r4087558 = h;
double r4087559 = r4087557 / r4087558;
double r4087560 = acos(r4087559);
double r4087561 = r4087560 / r4087554;
double r4087562 = r4087555 + r4087561;
double r4087563 = cos(r4087562);
double r4087564 = r4087551 * r4087563;
return r4087564;
}
double f(double g, double h) {
double r4087565 = atan2(1.0, 0.0);
double r4087566 = 2.0;
double r4087567 = 3.0;
double r4087568 = r4087566 / r4087567;
double r4087569 = g;
double r4087570 = h;
double r4087571 = r4087569 / r4087570;
double r4087572 = -r4087571;
double r4087573 = acos(r4087572);
double r4087574 = r4087573 / r4087567;
double r4087575 = fma(r4087565, r4087568, r4087574);
double r4087576 = cos(r4087575);
double r4087577 = exp(r4087576);
double r4087578 = cbrt(r4087577);
double r4087579 = r4087578 * r4087578;
double r4087580 = log(r4087579);
double r4087581 = log(r4087578);
double r4087582 = r4087580 + r4087581;
double r4087583 = r4087582 * r4087566;
return r4087583;
}



Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied add-sqr-sqrt1.0
Applied *-un-lft-identity1.0
Applied times-frac1.0
rmApplied add-log-exp1.0
Simplified1.0
rmApplied add-cube-cbrt0.1
Applied log-prod0.1
Final simplification0.1
herbie shell --seed 2019134 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))