\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)}\frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} + \left(-g\right)\right)}}{\sqrt[3]{2 \cdot a}}double f(double g, double h, double a) {
double r5363437 = 1.0;
double r5363438 = 2.0;
double r5363439 = a;
double r5363440 = r5363438 * r5363439;
double r5363441 = r5363437 / r5363440;
double r5363442 = g;
double r5363443 = -r5363442;
double r5363444 = r5363442 * r5363442;
double r5363445 = h;
double r5363446 = r5363445 * r5363445;
double r5363447 = r5363444 - r5363446;
double r5363448 = sqrt(r5363447);
double r5363449 = r5363443 + r5363448;
double r5363450 = r5363441 * r5363449;
double r5363451 = cbrt(r5363450);
double r5363452 = r5363443 - r5363448;
double r5363453 = r5363441 * r5363452;
double r5363454 = cbrt(r5363453);
double r5363455 = r5363451 + r5363454;
return r5363455;
}
double f(double g, double h, double a) {
double r5363456 = 1.0;
double r5363457 = g;
double r5363458 = -r5363457;
double r5363459 = r5363457 * r5363457;
double r5363460 = h;
double r5363461 = r5363460 * r5363460;
double r5363462 = r5363459 - r5363461;
double r5363463 = sqrt(r5363462);
double r5363464 = r5363458 - r5363463;
double r5363465 = r5363456 * r5363464;
double r5363466 = cbrt(r5363465);
double r5363467 = 2.0;
double r5363468 = a;
double r5363469 = r5363467 * r5363468;
double r5363470 = cbrt(r5363469);
double r5363471 = r5363466 / r5363470;
double r5363472 = r5363463 + r5363458;
double r5363473 = r5363456 * r5363472;
double r5363474 = cbrt(r5363473);
double r5363475 = r5363474 / r5363470;
double r5363476 = r5363471 + r5363475;
return r5363476;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.9
rmApplied associate-*l/35.9
Applied cbrt-div33.9
rmApplied associate-*l/33.9
Applied cbrt-div32.2
Final simplification32.2
herbie shell --seed 2019170
(FPCore (g h a)
:name "2-ancestry mixing, positive discriminant"
(+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))