Average Error: 36.6 → 32.8
Time: 21.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)}\]
\[\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}\]
\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} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}
double f(double g, double h, double a) {
        double r130562 = 1.0;
        double r130563 = 2.0;
        double r130564 = a;
        double r130565 = r130563 * r130564;
        double r130566 = r130562 / r130565;
        double r130567 = g;
        double r130568 = -r130567;
        double r130569 = r130567 * r130567;
        double r130570 = h;
        double r130571 = r130570 * r130570;
        double r130572 = r130569 - r130571;
        double r130573 = sqrt(r130572);
        double r130574 = r130568 + r130573;
        double r130575 = r130566 * r130574;
        double r130576 = cbrt(r130575);
        double r130577 = r130568 - r130573;
        double r130578 = r130566 * r130577;
        double r130579 = cbrt(r130578);
        double r130580 = r130576 + r130579;
        return r130580;
}

double f(double g, double h, double a) {
        double r130581 = 1.0;
        double r130582 = 2.0;
        double r130583 = a;
        double r130584 = r130582 * r130583;
        double r130585 = r130581 / r130584;
        double r130586 = cbrt(r130585);
        double r130587 = g;
        double r130588 = r130587 * r130587;
        double r130589 = h;
        double r130590 = r130589 * r130589;
        double r130591 = r130588 - r130590;
        double r130592 = sqrt(r130591);
        double r130593 = r130592 - r130587;
        double r130594 = cbrt(r130593);
        double r130595 = r130586 * r130594;
        double r130596 = -r130587;
        double r130597 = r130596 - r130592;
        double r130598 = r130581 * r130597;
        double r130599 = cbrt(r130598);
        double r130600 = cbrt(r130584);
        double r130601 = r130599 / r130600;
        double r130602 = r130595 + r130601;
        return r130602;
}

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

    \[\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.6

    \[\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 associate-*l/34.6

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

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

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

Reproduce

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