\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 r156153 = 1.0;
double r156154 = 2.0;
double r156155 = a;
double r156156 = r156154 * r156155;
double r156157 = r156153 / r156156;
double r156158 = g;
double r156159 = -r156158;
double r156160 = r156158 * r156158;
double r156161 = h;
double r156162 = r156161 * r156161;
double r156163 = r156160 - r156162;
double r156164 = sqrt(r156163);
double r156165 = r156159 + r156164;
double r156166 = r156157 * r156165;
double r156167 = cbrt(r156166);
double r156168 = r156159 - r156164;
double r156169 = r156157 * r156168;
double r156170 = cbrt(r156169);
double r156171 = r156167 + r156170;
return r156171;
}
double f(double g, double h, double a) {
double r156172 = 1.0;
double r156173 = 2.0;
double r156174 = a;
double r156175 = r156173 * r156174;
double r156176 = r156172 / r156175;
double r156177 = cbrt(r156176);
double r156178 = g;
double r156179 = -r156178;
double r156180 = r156178 * r156178;
double r156181 = h;
double r156182 = r156181 * r156181;
double r156183 = r156180 - r156182;
double r156184 = sqrt(r156183);
double r156185 = r156179 + r156184;
double r156186 = cbrt(r156185);
double r156187 = r156177 * r156186;
double r156188 = r156179 - r156184;
double r156189 = cbrt(r156188);
double r156190 = r156177 * r156189;
double r156191 = r156187 + r156190;
return r156191;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 35.9
rmApplied cbrt-prod33.8
rmApplied cbrt-prod32.1
Final simplification32.1
herbie shell --seed 2020059 +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))))))))