Average Error: 35.7 → 32.1
Time: 20.9s
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 \left(\sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\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 \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}
\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \left(\sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\right)
double f(double g, double h, double a) {
        double r111589 = 1.0;
        double r111590 = 2.0;
        double r111591 = a;
        double r111592 = r111590 * r111591;
        double r111593 = r111589 / r111592;
        double r111594 = g;
        double r111595 = -r111594;
        double r111596 = r111594 * r111594;
        double r111597 = h;
        double r111598 = r111597 * r111597;
        double r111599 = r111596 - r111598;
        double r111600 = sqrt(r111599);
        double r111601 = r111595 + r111600;
        double r111602 = r111593 * r111601;
        double r111603 = cbrt(r111602);
        double r111604 = r111595 - r111600;
        double r111605 = r111593 * r111604;
        double r111606 = cbrt(r111605);
        double r111607 = r111603 + r111606;
        return r111607;
}

double f(double g, double h, double a) {
        double r111608 = 1.0;
        double r111609 = 2.0;
        double r111610 = a;
        double r111611 = r111609 * r111610;
        double r111612 = r111608 / r111611;
        double r111613 = cbrt(r111612);
        double r111614 = g;
        double r111615 = -r111614;
        double r111616 = r111614 * r111614;
        double r111617 = h;
        double r111618 = r111617 * r111617;
        double r111619 = r111616 - r111618;
        double r111620 = sqrt(r111619);
        double r111621 = r111615 + r111620;
        double r111622 = cbrt(r111621);
        double r111623 = r111615 - r111620;
        double r111624 = cbrt(r111623);
        double r111625 = r111622 + r111624;
        double r111626 = r111613 * r111625;
        return r111626;
}

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.7

    \[\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-prod33.8

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

    \[\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 \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
  6. Final simplification32.1

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

Reproduce

herbie shell --seed 2019291 
(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))))))))