\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]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \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 r148270 = 1.0;
double r148271 = 2.0;
double r148272 = a;
double r148273 = r148271 * r148272;
double r148274 = r148270 / r148273;
double r148275 = g;
double r148276 = -r148275;
double r148277 = r148275 * r148275;
double r148278 = h;
double r148279 = r148278 * r148278;
double r148280 = r148277 - r148279;
double r148281 = sqrt(r148280);
double r148282 = r148276 + r148281;
double r148283 = r148274 * r148282;
double r148284 = cbrt(r148283);
double r148285 = r148276 - r148281;
double r148286 = r148274 * r148285;
double r148287 = cbrt(r148286);
double r148288 = r148284 + r148287;
return r148288;
}
double f(double g, double h, double a) {
double r148289 = 1.0;
double r148290 = 2.0;
double r148291 = a;
double r148292 = r148290 * r148291;
double r148293 = r148289 / r148292;
double r148294 = cbrt(r148293);
double r148295 = g;
double r148296 = -r148295;
double r148297 = r148295 * r148295;
double r148298 = h;
double r148299 = r148298 * r148298;
double r148300 = r148297 - r148299;
double r148301 = sqrt(r148300);
double r148302 = r148296 + r148301;
double r148303 = cbrt(r148302);
double r148304 = r148294 * r148303;
double r148305 = r148296 - r148301;
double r148306 = cbrt(r148305);
double r148307 = r148294 * r148306;
double r148308 = r148304 + r148307;
return r148308;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.3
rmApplied cbrt-prod34.4
rmApplied cbrt-prod32.6
Final simplification32.6
herbie shell --seed 2020039 +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))))))))