\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 r114055 = 1.0;
double r114056 = 2.0;
double r114057 = a;
double r114058 = r114056 * r114057;
double r114059 = r114055 / r114058;
double r114060 = g;
double r114061 = -r114060;
double r114062 = r114060 * r114060;
double r114063 = h;
double r114064 = r114063 * r114063;
double r114065 = r114062 - r114064;
double r114066 = sqrt(r114065);
double r114067 = r114061 + r114066;
double r114068 = r114059 * r114067;
double r114069 = cbrt(r114068);
double r114070 = r114061 - r114066;
double r114071 = r114059 * r114070;
double r114072 = cbrt(r114071);
double r114073 = r114069 + r114072;
return r114073;
}
double f(double g, double h, double a) {
double r114074 = 1.0;
double r114075 = 2.0;
double r114076 = a;
double r114077 = r114075 * r114076;
double r114078 = r114074 / r114077;
double r114079 = cbrt(r114078);
double r114080 = g;
double r114081 = r114080 * r114080;
double r114082 = h;
double r114083 = r114082 * r114082;
double r114084 = r114081 - r114083;
double r114085 = sqrt(r114084);
double r114086 = r114085 - r114080;
double r114087 = cbrt(r114086);
double r114088 = r114079 * r114087;
double r114089 = -r114080;
double r114090 = r114089 - r114085;
double r114091 = cbrt(r114090);
double r114092 = r114079 * r114091;
double r114093 = r114088 + r114092;
return r114093;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.6
rmApplied cbrt-prod34.7
Simplified34.7
rmApplied cbrt-prod33.0
Final simplification33.0
herbie shell --seed 2020047
(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))))))))