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(\pi, \frac{2}{3}, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right) + \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 r79383 = 2.0;
double r79384 = atan2(1.0, 0.0);
double r79385 = r79383 * r79384;
double r79386 = 3.0;
double r79387 = r79385 / r79386;
double r79388 = g;
double r79389 = -r79388;
double r79390 = h;
double r79391 = r79389 / r79390;
double r79392 = acos(r79391);
double r79393 = r79392 / r79386;
double r79394 = r79387 + r79393;
double r79395 = cos(r79394);
double r79396 = r79383 * r79395;
return r79396;
}
double f(double g, double h) {
double r79397 = 2.0;
double r79398 = 2.0;
double r79399 = atan2(1.0, 0.0);
double r79400 = 3.0;
double r79401 = r79397 / r79400;
double r79402 = g;
double r79403 = -r79402;
double r79404 = h;
double r79405 = r79403 / r79404;
double r79406 = acos(r79405);
double r79407 = r79406 / r79400;
double r79408 = fma(r79399, r79401, r79407);
double r79409 = cos(r79408);
double r79410 = exp(r79409);
double r79411 = cbrt(r79410);
double r79412 = log(r79411);
double r79413 = r79398 * r79412;
double r79414 = r79413 + r79412;
double r79415 = r79397 * r79414;
return r79415;
}



Bits error versus g



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