Average Error: 35.3 → 31.4
Time: 28.6s
Precision: 64
\[\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]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{-1}{2}}}{\sqrt[3]{a}} + \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}\]
\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]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{-1}{2}}}{\sqrt[3]{a}} + \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}
double f(double g, double h, double a) {
        double r2141272 = 1.0;
        double r2141273 = 2.0;
        double r2141274 = a;
        double r2141275 = r2141273 * r2141274;
        double r2141276 = r2141272 / r2141275;
        double r2141277 = g;
        double r2141278 = -r2141277;
        double r2141279 = r2141277 * r2141277;
        double r2141280 = h;
        double r2141281 = r2141280 * r2141280;
        double r2141282 = r2141279 - r2141281;
        double r2141283 = sqrt(r2141282);
        double r2141284 = r2141278 + r2141283;
        double r2141285 = r2141276 * r2141284;
        double r2141286 = cbrt(r2141285);
        double r2141287 = r2141278 - r2141283;
        double r2141288 = r2141276 * r2141287;
        double r2141289 = cbrt(r2141288);
        double r2141290 = r2141286 + r2141289;
        return r2141290;
}

double f(double g, double h, double a) {
        double r2141291 = g;
        double r2141292 = r2141291 * r2141291;
        double r2141293 = h;
        double r2141294 = r2141293 * r2141293;
        double r2141295 = r2141292 - r2141294;
        double r2141296 = sqrt(r2141295);
        double r2141297 = r2141296 + r2141291;
        double r2141298 = -0.5;
        double r2141299 = r2141297 * r2141298;
        double r2141300 = cbrt(r2141299);
        double r2141301 = a;
        double r2141302 = cbrt(r2141301);
        double r2141303 = r2141300 / r2141302;
        double r2141304 = r2141296 - r2141291;
        double r2141305 = cbrt(r2141304);
        double r2141306 = 0.5;
        double r2141307 = r2141301 / r2141306;
        double r2141308 = cbrt(r2141307);
        double r2141309 = r2141305 / r2141308;
        double r2141310 = r2141303 + r2141309;
        return r2141310;
}

Error

Bits error versus g

Bits error versus h

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 35.3

    \[\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)}\]
  2. Simplified35.2

    \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{\frac{a}{\frac{1}{2}}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}\]
  3. Using strategy rm
  4. Applied associate-*l/35.2

    \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{\frac{a}{\frac{1}{2}}}} + \sqrt[3]{\color{blue}{\frac{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}{a}}}\]
  5. Applied cbrt-div33.2

    \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{\frac{a}{\frac{1}{2}}}} + \color{blue}{\frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{a}}}\]
  6. Using strategy rm
  7. Applied cbrt-div31.4

    \[\leadsto \color{blue}{\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{a}}\]
  8. Final simplification31.4

    \[\leadsto \frac{\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{-1}{2}}}{\sqrt[3]{a}} + \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}\]

Reproduce

herbie shell --seed 2019152 +o rules:numerics
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  (+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))