\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}double f(double g, double h, double a) {
double r113411 = 1.0;
double r113412 = 2.0;
double r113413 = a;
double r113414 = r113412 * r113413;
double r113415 = r113411 / r113414;
double r113416 = g;
double r113417 = -r113416;
double r113418 = r113416 * r113416;
double r113419 = h;
double r113420 = r113419 * r113419;
double r113421 = r113418 - r113420;
double r113422 = sqrt(r113421);
double r113423 = r113417 + r113422;
double r113424 = r113415 * r113423;
double r113425 = cbrt(r113424);
double r113426 = r113417 - r113422;
double r113427 = r113415 * r113426;
double r113428 = cbrt(r113427);
double r113429 = r113425 + r113428;
return r113429;
}
double f(double g, double h, double a) {
double r113430 = 1.0;
double r113431 = 2.0;
double r113432 = a;
double r113433 = r113431 * r113432;
double r113434 = r113430 / r113433;
double r113435 = cbrt(r113434);
double r113436 = g;
double r113437 = r113436 * r113436;
double r113438 = h;
double r113439 = r113438 * r113438;
double r113440 = r113437 - r113439;
double r113441 = sqrt(r113440);
double r113442 = r113441 - r113436;
double r113443 = cbrt(r113442);
double r113444 = r113435 * r113443;
double r113445 = -r113436;
double r113446 = r113445 - r113441;
double r113447 = cbrt(r113446);
double r113448 = r113435 * r113447;
double r113449 = r113444 + r113448;
return r113449;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.6
rmApplied cbrt-prod34.7
Simplified34.7
rmApplied cbrt-prod33.0
Final simplification33.0
herbie shell --seed 2020047 +o rules:numerics
(FPCore (g h a)
:name "2-ancestry mixing, positive discriminant"
:precision binary64
(+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))