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(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)} \cdot \sqrt[3]{\cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right) \cdot \cos \left(\left(\sqrt[3]{\frac{2 \cdot \pi}{3}} \cdot \sqrt[3]{\frac{2 \cdot \pi}{3}}\right) \cdot \sqrt[3]{\frac{2 \cdot \pi}{3}} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)}\right)double f(double g, double h) {
double r143594 = 2.0;
double r143595 = atan2(1.0, 0.0);
double r143596 = r143594 * r143595;
double r143597 = 3.0;
double r143598 = r143596 / r143597;
double r143599 = g;
double r143600 = -r143599;
double r143601 = h;
double r143602 = r143600 / r143601;
double r143603 = acos(r143602);
double r143604 = r143603 / r143597;
double r143605 = r143598 + r143604;
double r143606 = cos(r143605);
double r143607 = r143594 * r143606;
return r143607;
}
double f(double g, double h) {
double r143608 = 2.0;
double r143609 = atan2(1.0, 0.0);
double r143610 = r143608 * r143609;
double r143611 = 3.0;
double r143612 = r143610 / r143611;
double r143613 = g;
double r143614 = -r143613;
double r143615 = h;
double r143616 = r143614 / r143615;
double r143617 = acos(r143616);
double r143618 = r143617 / r143611;
double r143619 = r143612 + r143618;
double r143620 = cos(r143619);
double r143621 = cbrt(r143620);
double r143622 = cbrt(r143612);
double r143623 = r143622 * r143622;
double r143624 = r143623 * r143622;
double r143625 = r143624 + r143618;
double r143626 = cos(r143625);
double r143627 = r143620 * r143626;
double r143628 = cbrt(r143627);
double r143629 = r143621 * r143628;
double r143630 = r143608 * r143629;
return r143630;
}



Bits error versus g



Bits error versus h
Results
Initial program 1.0
rmApplied add-cbrt-cube1.5
Simplified1.0
rmApplied cube-mult1.5
Applied cbrt-prod0.1
rmApplied add-cube-cbrt0.0
Final simplification0.0
herbie shell --seed 2020065
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))