2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(2 \cdot \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right) + \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right)\right)double f(double g, double h) {
double r169624 = 2.0;
double r169625 = atan2(1.0, 0.0);
double r169626 = r169624 * r169625;
double r169627 = 3.0;
double r169628 = r169626 / r169627;
double r169629 = g;
double r169630 = -r169629;
double r169631 = h;
double r169632 = r169630 / r169631;
double r169633 = acos(r169632);
double r169634 = r169633 / r169627;
double r169635 = r169628 + r169634;
double r169636 = cos(r169635);
double r169637 = r169624 * r169636;
return r169637;
}
double f(double g, double h) {
double r169638 = 2.0;
double r169639 = 2.0;
double r169640 = 3.0;
double r169641 = r169638 / r169640;
double r169642 = atan2(1.0, 0.0);
double r169643 = g;
double r169644 = -r169643;
double r169645 = h;
double r169646 = r169644 / r169645;
double r169647 = acos(r169646);
double r169648 = r169647 / r169640;
double r169649 = fma(r169641, r169642, r169648);
double r169650 = cos(r169649);
double r169651 = exp(r169650);
double r169652 = cbrt(r169651);
double r169653 = log(r169652);
double r169654 = r169639 * r169653;
double r169655 = r169654 + r169653;
double r169656 = r169638 * r169655;
return r169656;
}



Bits error versus g



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