\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 r109544 = 1.0;
double r109545 = 2.0;
double r109546 = a;
double r109547 = r109545 * r109546;
double r109548 = r109544 / r109547;
double r109549 = g;
double r109550 = -r109549;
double r109551 = r109549 * r109549;
double r109552 = h;
double r109553 = r109552 * r109552;
double r109554 = r109551 - r109553;
double r109555 = sqrt(r109554);
double r109556 = r109550 + r109555;
double r109557 = r109548 * r109556;
double r109558 = cbrt(r109557);
double r109559 = r109550 - r109555;
double r109560 = r109548 * r109559;
double r109561 = cbrt(r109560);
double r109562 = r109558 + r109561;
return r109562;
}
double f(double g, double h, double a) {
double r109563 = 1.0;
double r109564 = 2.0;
double r109565 = a;
double r109566 = r109564 * r109565;
double r109567 = r109563 / r109566;
double r109568 = cbrt(r109567);
double r109569 = g;
double r109570 = r109569 * r109569;
double r109571 = h;
double r109572 = r109571 * r109571;
double r109573 = r109570 - r109572;
double r109574 = sqrt(r109573);
double r109575 = r109574 - r109569;
double r109576 = cbrt(r109575);
double r109577 = r109568 * r109576;
double r109578 = -r109569;
double r109579 = r109578 - r109574;
double r109580 = cbrt(r109579);
double r109581 = r109568 * r109580;
double r109582 = r109577 + r109581;
return r109582;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.2
rmApplied cbrt-prod34.1
Simplified34.1
rmApplied cbrt-prod32.3
Final simplification32.3
herbie shell --seed 2019195 +o rules:numerics
(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))))))))