\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]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}{\sqrt[3]{a \cdot 2}} + \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{a \cdot 2}}double f(double g, double h, double a) {
double r6503437 = 1.0;
double r6503438 = 2.0;
double r6503439 = a;
double r6503440 = r6503438 * r6503439;
double r6503441 = r6503437 / r6503440;
double r6503442 = g;
double r6503443 = -r6503442;
double r6503444 = r6503442 * r6503442;
double r6503445 = h;
double r6503446 = r6503445 * r6503445;
double r6503447 = r6503444 - r6503446;
double r6503448 = sqrt(r6503447);
double r6503449 = r6503443 + r6503448;
double r6503450 = r6503441 * r6503449;
double r6503451 = cbrt(r6503450);
double r6503452 = r6503443 - r6503448;
double r6503453 = r6503441 * r6503452;
double r6503454 = cbrt(r6503453);
double r6503455 = r6503451 + r6503454;
return r6503455;
}
double f(double g, double h, double a) {
double r6503456 = g;
double r6503457 = -r6503456;
double r6503458 = r6503456 * r6503456;
double r6503459 = h;
double r6503460 = r6503459 * r6503459;
double r6503461 = r6503458 - r6503460;
double r6503462 = sqrt(r6503461);
double r6503463 = r6503457 - r6503462;
double r6503464 = cbrt(r6503463);
double r6503465 = a;
double r6503466 = 2.0;
double r6503467 = r6503465 * r6503466;
double r6503468 = cbrt(r6503467);
double r6503469 = r6503464 / r6503468;
double r6503470 = r6503462 - r6503456;
double r6503471 = cbrt(r6503470);
double r6503472 = r6503471 / r6503468;
double r6503473 = r6503469 + r6503472;
return r6503473;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.8
rmApplied associate-*l/35.8
Applied cbrt-div33.9
rmApplied associate-*l/33.9
Applied cbrt-div32.1
Simplified32.1
Final simplification32.1
herbie shell --seed 2019168 +o rules:numerics
(FPCore (g h a)
:name "2-ancestry mixing, positive discriminant"
(+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))