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^{\left(\sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)} \cdot \sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}\right) \cdot \sqrt[3]{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}}\right) + \log \left(\sqrt[3]{e^{\cos \left(\mathsf{fma}\left(\frac{2}{3}, \pi, \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}}\right)\right)double f(double g, double h) {
double r128362 = 2.0;
double r128363 = atan2(1.0, 0.0);
double r128364 = r128362 * r128363;
double r128365 = 3.0;
double r128366 = r128364 / r128365;
double r128367 = g;
double r128368 = -r128367;
double r128369 = h;
double r128370 = r128368 / r128369;
double r128371 = acos(r128370);
double r128372 = r128371 / r128365;
double r128373 = r128366 + r128372;
double r128374 = cos(r128373);
double r128375 = r128362 * r128374;
return r128375;
}
double f(double g, double h) {
double r128376 = 2.0;
double r128377 = 2.0;
double r128378 = 3.0;
double r128379 = r128376 / r128378;
double r128380 = atan2(1.0, 0.0);
double r128381 = g;
double r128382 = -r128381;
double r128383 = h;
double r128384 = r128382 / r128383;
double r128385 = acos(r128384);
double r128386 = r128385 / r128378;
double r128387 = fma(r128379, r128380, r128386);
double r128388 = cos(r128387);
double r128389 = cbrt(r128388);
double r128390 = r128389 * r128389;
double r128391 = r128390 * r128389;
double r128392 = exp(r128391);
double r128393 = cbrt(r128392);
double r128394 = log(r128393);
double r128395 = r128377 * r128394;
double r128396 = exp(r128388);
double r128397 = cbrt(r128396);
double r128398 = log(r128397);
double r128399 = r128395 + r128398;
double r128400 = r128376 * r128399;
return r128400;
}



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
rmApplied add-cube-cbrt0.1
Final simplification0.1
herbie shell --seed 2019326 +o rules:numerics
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))