2 \cdot \cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)2 \cdot \left(\log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right) \cdot 2 + \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right)\right)double f(double g, double h) {
double r105235 = 2.0;
double r105236 = atan2(1.0, 0.0);
double r105237 = r105235 * r105236;
double r105238 = 3.0;
double r105239 = r105237 / r105238;
double r105240 = g;
double r105241 = -r105240;
double r105242 = h;
double r105243 = r105241 / r105242;
double r105244 = acos(r105243);
double r105245 = r105244 / r105238;
double r105246 = r105239 + r105245;
double r105247 = cos(r105246);
double r105248 = r105235 * r105247;
return r105248;
}
double f(double g, double h) {
double r105249 = 2.0;
double r105250 = atan2(1.0, 0.0);
double r105251 = 3.0;
double r105252 = r105249 / r105251;
double r105253 = g;
double r105254 = -r105253;
double r105255 = h;
double r105256 = r105254 / r105255;
double r105257 = acos(r105256);
double r105258 = r105257 / r105251;
double r105259 = fma(r105250, r105252, r105258);
double r105260 = cos(r105259);
double r105261 = exp(r105260);
double r105262 = cbrt(r105261);
double r105263 = log(r105262);
double r105264 = 2.0;
double r105265 = r105263 * r105264;
double r105266 = r105265 + r105263;
double r105267 = r105249 * r105266;
return r105267;
}



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)))))