2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\log \left(\left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}} \cdot \sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}}\right) \cdot \sqrt[3]{e^{\sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)} \cdot \left(\sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)} \cdot \sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(-\frac{g}{h}\right)}{3}\right)\right)}\right)}}\right) \cdot 2double f(double g, double h) {
double r4412571 = 2.0;
double r4412572 = atan2(1.0, 0.0);
double r4412573 = r4412571 * r4412572;
double r4412574 = 3.0;
double r4412575 = r4412573 / r4412574;
double r4412576 = g;
double r4412577 = -r4412576;
double r4412578 = h;
double r4412579 = r4412577 / r4412578;
double r4412580 = acos(r4412579);
double r4412581 = r4412580 / r4412574;
double r4412582 = r4412575 + r4412581;
double r4412583 = cos(r4412582);
double r4412584 = r4412571 * r4412583;
return r4412584;
}
double f(double g, double h) {
double r4412585 = 2.0;
double r4412586 = 3.0;
double r4412587 = r4412585 / r4412586;
double r4412588 = atan2(1.0, 0.0);
double r4412589 = g;
double r4412590 = h;
double r4412591 = r4412589 / r4412590;
double r4412592 = -r4412591;
double r4412593 = acos(r4412592);
double r4412594 = r4412593 / r4412586;
double r4412595 = fma(r4412587, r4412588, r4412594);
double r4412596 = cos(r4412595);
double r4412597 = exp(r4412596);
double r4412598 = cbrt(r4412597);
double r4412599 = r4412598 * r4412598;
double r4412600 = cbrt(r4412596);
double r4412601 = r4412600 * r4412600;
double r4412602 = r4412600 * r4412601;
double r4412603 = exp(r4412602);
double r4412604 = cbrt(r4412603);
double r4412605 = r4412599 * r4412604;
double r4412606 = log(r4412605);
double r4412607 = r4412606 * r4412585;
return r4412607;
}



Bits error versus g



Bits error versus h
Initial program 1.0
Simplified1.0
rmApplied add-log-exp1.0
rmApplied add-cube-cbrt0.1
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
(* 2.0 (cos (+ (/ (* 2.0 PI) 3.0) (/ (acos (/ (- g) h)) 3.0)))))