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]{{\left(\cos \left(\frac{2 \cdot \pi}{3} + \frac{\cos^{-1} \left(\frac{-g}{h}\right)}{3}\right)\right)}^{2}}\right)double f(double g, double h) {
double r150405 = 2.0;
double r150406 = atan2(1.0, 0.0);
double r150407 = r150405 * r150406;
double r150408 = 3.0;
double r150409 = r150407 / r150408;
double r150410 = g;
double r150411 = -r150410;
double r150412 = h;
double r150413 = r150411 / r150412;
double r150414 = acos(r150413);
double r150415 = r150414 / r150408;
double r150416 = r150409 + r150415;
double r150417 = cos(r150416);
double r150418 = r150405 * r150417;
return r150418;
}
double f(double g, double h) {
double r150419 = 2.0;
double r150420 = atan2(1.0, 0.0);
double r150421 = r150419 * r150420;
double r150422 = 3.0;
double r150423 = r150421 / r150422;
double r150424 = g;
double r150425 = -r150424;
double r150426 = h;
double r150427 = r150425 / r150426;
double r150428 = acos(r150427);
double r150429 = r150428 / r150422;
double r150430 = r150423 + r150429;
double r150431 = cos(r150430);
double r150432 = cbrt(r150431);
double r150433 = 2.0;
double r150434 = pow(r150431, r150433);
double r150435 = cbrt(r150434);
double r150436 = r150432 * r150435;
double r150437 = r150419 * r150436;
return r150437;
}



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
Simplified0.1
Final simplification0.1
herbie shell --seed 2020047
(FPCore (g h)
:name "2-ancestry mixing, negative discriminant"
:precision binary64
(* 2 (cos (+ (/ (* 2 PI) 3) (/ (acos (/ (- g) h)) 3)))))