\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 r7746193 = 1.0;
double r7746194 = 2.0;
double r7746195 = a;
double r7746196 = r7746194 * r7746195;
double r7746197 = r7746193 / r7746196;
double r7746198 = g;
double r7746199 = -r7746198;
double r7746200 = r7746198 * r7746198;
double r7746201 = h;
double r7746202 = r7746201 * r7746201;
double r7746203 = r7746200 - r7746202;
double r7746204 = sqrt(r7746203);
double r7746205 = r7746199 + r7746204;
double r7746206 = r7746197 * r7746205;
double r7746207 = cbrt(r7746206);
double r7746208 = r7746199 - r7746204;
double r7746209 = r7746197 * r7746208;
double r7746210 = cbrt(r7746209);
double r7746211 = r7746207 + r7746210;
return r7746211;
}
double f(double g, double h, double a) {
double r7746212 = 1.0;
double r7746213 = 2.0;
double r7746214 = a;
double r7746215 = r7746213 * r7746214;
double r7746216 = r7746212 / r7746215;
double r7746217 = cbrt(r7746216);
double r7746218 = g;
double r7746219 = -r7746218;
double r7746220 = r7746218 * r7746218;
double r7746221 = h;
double r7746222 = r7746221 * r7746221;
double r7746223 = r7746220 - r7746222;
double r7746224 = sqrt(r7746223);
double r7746225 = r7746219 + r7746224;
double r7746226 = cbrt(r7746225);
double r7746227 = r7746217 * r7746226;
double r7746228 = r7746219 - r7746224;
double r7746229 = cbrt(r7746228);
double r7746230 = r7746217 * r7746229;
double r7746231 = r7746227 + r7746230;
return r7746231;
}



Bits error versus g



Bits error versus h



Bits error versus a
Results
Initial program 36.0
rmApplied cbrt-prod34.0
rmApplied cbrt-prod32.1
Final simplification32.1
herbie shell --seed 2019174 +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))))))))