\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(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}double f(double g, double h, double a) {
double r95532 = 1.0;
double r95533 = 2.0;
double r95534 = a;
double r95535 = r95533 * r95534;
double r95536 = r95532 / r95535;
double r95537 = g;
double r95538 = -r95537;
double r95539 = r95537 * r95537;
double r95540 = h;
double r95541 = r95540 * r95540;
double r95542 = r95539 - r95541;
double r95543 = sqrt(r95542);
double r95544 = r95538 + r95543;
double r95545 = r95536 * r95544;
double r95546 = cbrt(r95545);
double r95547 = r95538 - r95543;
double r95548 = r95536 * r95547;
double r95549 = cbrt(r95548);
double r95550 = r95546 + r95549;
return r95550;
}
double f(double g, double h, double a) {
double r95551 = 1.0;
double r95552 = g;
double r95553 = r95552 * r95552;
double r95554 = h;
double r95555 = r95554 * r95554;
double r95556 = r95553 - r95555;
double r95557 = sqrt(r95556);
double r95558 = r95557 - r95552;
double r95559 = r95551 * r95558;
double r95560 = cbrt(r95559);
double r95561 = 2.0;
double r95562 = a;
double r95563 = r95561 * r95562;
double r95564 = cbrt(r95563);
double r95565 = r95560 / r95564;
double r95566 = -r95552;
double r95567 = r95566 - r95557;
double r95568 = r95551 * r95567;
double r95569 = cbrt(r95568);
double r95570 = r95569 / r95564;
double r95571 = r95565 + r95570;
return r95571;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.5
Simplified35.5
rmApplied associate-*l/35.5
Applied cbrt-div33.5
rmApplied associate-*l/33.5
Applied cbrt-div31.9
Final simplification31.9
herbie shell --seed 2019305 +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))))))))