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(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)}\right)double f(double g, double h) {
double r159940 = 2.0;
double r159941 = atan2(1.0, 0.0);
double r159942 = r159940 * r159941;
double r159943 = 3.0;
double r159944 = r159942 / r159943;
double r159945 = g;
double r159946 = -r159945;
double r159947 = h;
double r159948 = r159946 / r159947;
double r159949 = acos(r159948);
double r159950 = r159949 / r159943;
double r159951 = r159944 + r159950;
double r159952 = cos(r159951);
double r159953 = r159940 * r159952;
return r159953;
}
double f(double g, double h) {
double r159954 = 2.0;
double r159955 = atan2(1.0, 0.0);
double r159956 = r159954 * r159955;
double r159957 = 3.0;
double r159958 = r159956 / r159957;
double r159959 = g;
double r159960 = -r159959;
double r159961 = h;
double r159962 = r159960 / r159961;
double r159963 = acos(r159962);
double r159964 = r159963 / r159957;
double r159965 = r159958 + r159964;
double r159966 = cos(r159965);
double r159967 = cbrt(r159966);
double r159968 = r159966 * r159966;
double r159969 = cbrt(r159968);
double r159970 = r159967 * r159969;
double r159971 = r159954 * r159970;
return r159971;
}



Bits error versus g



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