Average Error: 36.6 → 33.0
Time: 12.7s
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)}\]
\[\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}}\]
\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 r113411 = 1.0;
        double r113412 = 2.0;
        double r113413 = a;
        double r113414 = r113412 * r113413;
        double r113415 = r113411 / r113414;
        double r113416 = g;
        double r113417 = -r113416;
        double r113418 = r113416 * r113416;
        double r113419 = h;
        double r113420 = r113419 * r113419;
        double r113421 = r113418 - r113420;
        double r113422 = sqrt(r113421);
        double r113423 = r113417 + r113422;
        double r113424 = r113415 * r113423;
        double r113425 = cbrt(r113424);
        double r113426 = r113417 - r113422;
        double r113427 = r113415 * r113426;
        double r113428 = cbrt(r113427);
        double r113429 = r113425 + r113428;
        return r113429;
}

double f(double g, double h, double a) {
        double r113430 = 1.0;
        double r113431 = 2.0;
        double r113432 = a;
        double r113433 = r113431 * r113432;
        double r113434 = r113430 / r113433;
        double r113435 = cbrt(r113434);
        double r113436 = g;
        double r113437 = r113436 * r113436;
        double r113438 = h;
        double r113439 = r113438 * r113438;
        double r113440 = r113437 - r113439;
        double r113441 = sqrt(r113440);
        double r113442 = r113441 - r113436;
        double r113443 = cbrt(r113442);
        double r113444 = r113435 * r113443;
        double r113445 = -r113436;
        double r113446 = r113445 - r113441;
        double r113447 = cbrt(r113446);
        double r113448 = r113435 * r113447;
        double r113449 = r113444 + r113448;
        return r113449;
}

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 36.6

    \[\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. Using strategy rm
  3. Applied cbrt-prod34.7

    \[\leadsto \color{blue}{\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 \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
  4. Simplified34.7

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

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

    \[\leadsto \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}}\]

Reproduce

herbie shell --seed 2020047 +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))))))))