\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]{\frac{-1}{2} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)}}{\sqrt[3]{a}} + \sqrt[3]{\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{a}} \cdot \sqrt[3]{\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{2}}double f(double g, double h, double a) {
double r2271295 = 1.0;
double r2271296 = 2.0;
double r2271297 = a;
double r2271298 = r2271296 * r2271297;
double r2271299 = r2271295 / r2271298;
double r2271300 = g;
double r2271301 = -r2271300;
double r2271302 = r2271300 * r2271300;
double r2271303 = h;
double r2271304 = r2271303 * r2271303;
double r2271305 = r2271302 - r2271304;
double r2271306 = sqrt(r2271305);
double r2271307 = r2271301 + r2271306;
double r2271308 = r2271299 * r2271307;
double r2271309 = cbrt(r2271308);
double r2271310 = r2271301 - r2271306;
double r2271311 = r2271299 * r2271310;
double r2271312 = cbrt(r2271311);
double r2271313 = r2271309 + r2271312;
return r2271313;
}
double f(double g, double h, double a) {
double r2271314 = -0.5;
double r2271315 = g;
double r2271316 = r2271315 * r2271315;
double r2271317 = h;
double r2271318 = r2271317 * r2271317;
double r2271319 = r2271316 - r2271318;
double r2271320 = sqrt(r2271319);
double r2271321 = r2271320 + r2271315;
double r2271322 = r2271314 * r2271321;
double r2271323 = cbrt(r2271322);
double r2271324 = a;
double r2271325 = cbrt(r2271324);
double r2271326 = r2271323 / r2271325;
double r2271327 = r2271320 - r2271315;
double r2271328 = cbrt(r2271327);
double r2271329 = r2271328 / r2271324;
double r2271330 = cbrt(r2271329);
double r2271331 = r2271328 * r2271328;
double r2271332 = 2.0;
double r2271333 = r2271331 / r2271332;
double r2271334 = cbrt(r2271333);
double r2271335 = r2271330 * r2271334;
double r2271336 = r2271326 + r2271335;
return r2271336;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.2
Simplified35.2
rmApplied associate-*l/35.2
Applied cbrt-div33.4
rmApplied add-cube-cbrt33.4
Applied times-frac33.4
Applied cbrt-prod32.3
Final simplification32.3
herbie shell --seed 2019151
(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))))))))