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 \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)} \cdot \sqrt[3]{\cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)}\right)double f(double g, double h) {
double r123910 = 2.0;
double r123911 = atan2(1.0, 0.0);
double r123912 = r123910 * r123911;
double r123913 = 3.0;
double r123914 = r123912 / r123913;
double r123915 = g;
double r123916 = -r123915;
double r123917 = h;
double r123918 = r123916 / r123917;
double r123919 = acos(r123918);
double r123920 = r123919 / r123913;
double r123921 = r123914 + r123920;
double r123922 = cos(r123921);
double r123923 = r123910 * r123922;
return r123923;
}
double f(double g, double h) {
double r123924 = 2.0;
double r123925 = atan2(1.0, 0.0);
double r123926 = r123924 * r123925;
double r123927 = 3.0;
double r123928 = r123926 / r123927;
double r123929 = g;
double r123930 = -r123929;
double r123931 = h;
double r123932 = r123930 / r123931;
double r123933 = acos(r123932);
double r123934 = r123933 / r123927;
double r123935 = r123928 + r123934;
double r123936 = cos(r123935);
double r123937 = cbrt(r123928);
double r123938 = r123937 * r123937;
double r123939 = r123938 * r123937;
double r123940 = r123939 + r123934;
double r123941 = cos(r123940);
double r123942 = r123936 * r123941;
double r123943 = cbrt(r123942);
double r123944 = cbrt(r123936);
double r123945 = r123943 * r123944;
double r123946 = r123924 * r123945;
return r123946;
}



Bits error versus g



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