Average Error: 34.6 → 30.5
Time: 35.2s
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)}\]
\[\begin{array}{l} \mathbf{if}\;g \le 1.820567991238995 \cdot 10^{-157}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\frac{\frac{1}{2}}{a}} \cdot \sqrt[3]{\left(-g\right) - g}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{1}{2}}{a} \cdot \left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} - g\right)} + \frac{\sqrt[3]{\left(\sqrt[3]{\frac{-1}{2}} \cdot \sqrt[3]{\frac{-1}{2}}\right) \cdot \left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right)}}{\sqrt[3]{\frac{a}{\sqrt[3]{\frac{-1}{2}}}}}\\ \end{array}\]
\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)}
\begin{array}{l}
\mathbf{if}\;g \le 1.820567991238995 \cdot 10^{-157}:\\
\;\;\;\;\sqrt[3]{\left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\frac{\frac{1}{2}}{a}} \cdot \sqrt[3]{\left(-g\right) - g}\\

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

\end{array}
double f(double g, double h, double a) {
        double r8432691 = 1.0;
        double r8432692 = 2.0;
        double r8432693 = a;
        double r8432694 = r8432692 * r8432693;
        double r8432695 = r8432691 / r8432694;
        double r8432696 = g;
        double r8432697 = -r8432696;
        double r8432698 = r8432696 * r8432696;
        double r8432699 = h;
        double r8432700 = r8432699 * r8432699;
        double r8432701 = r8432698 - r8432700;
        double r8432702 = sqrt(r8432701);
        double r8432703 = r8432697 + r8432702;
        double r8432704 = r8432695 * r8432703;
        double r8432705 = cbrt(r8432704);
        double r8432706 = r8432697 - r8432702;
        double r8432707 = r8432695 * r8432706;
        double r8432708 = cbrt(r8432707);
        double r8432709 = r8432705 + r8432708;
        return r8432709;
}

double f(double g, double h, double a) {
        double r8432710 = g;
        double r8432711 = 1.820567991238995e-157;
        bool r8432712 = r8432710 <= r8432711;
        double r8432713 = h;
        double r8432714 = r8432713 + r8432710;
        double r8432715 = r8432710 - r8432713;
        double r8432716 = r8432714 * r8432715;
        double r8432717 = sqrt(r8432716);
        double r8432718 = r8432717 + r8432710;
        double r8432719 = -0.5;
        double r8432720 = a;
        double r8432721 = r8432719 / r8432720;
        double r8432722 = r8432718 * r8432721;
        double r8432723 = cbrt(r8432722);
        double r8432724 = 0.5;
        double r8432725 = r8432724 / r8432720;
        double r8432726 = cbrt(r8432725);
        double r8432727 = -r8432710;
        double r8432728 = r8432727 - r8432710;
        double r8432729 = cbrt(r8432728);
        double r8432730 = r8432726 * r8432729;
        double r8432731 = r8432723 + r8432730;
        double r8432732 = r8432717 - r8432710;
        double r8432733 = r8432725 * r8432732;
        double r8432734 = cbrt(r8432733);
        double r8432735 = cbrt(r8432719);
        double r8432736 = r8432735 * r8432735;
        double r8432737 = r8432736 * r8432718;
        double r8432738 = cbrt(r8432737);
        double r8432739 = r8432720 / r8432735;
        double r8432740 = cbrt(r8432739);
        double r8432741 = r8432738 / r8432740;
        double r8432742 = r8432734 + r8432741;
        double r8432743 = r8432712 ? r8432731 : r8432742;
        return r8432743;
}

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. Split input into 2 regimes
  2. if g < 1.820567991238995e-157

    1. Initial program 35.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. Simplified35.6

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

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

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt{\left(g - h\right) \cdot \left(g + h\right)} - g} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(g + \sqrt{\left(g - h\right) \cdot \left(g + h\right)}\right)}\]
    6. Taylor expanded around -inf 31.0

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

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

    if 1.820567991238995e-157 < g

    1. Initial program 33.4

      \[\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. Simplified33.4

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

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

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

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

      \[\leadsto \sqrt[3]{\frac{\frac{1}{2}}{a} \cdot \left(\sqrt{\left(g - h\right) \cdot \left(g + h\right)} - g\right)} + \color{blue}{\frac{\sqrt[3]{\left(\sqrt[3]{\frac{-1}{2}} \cdot \sqrt[3]{\frac{-1}{2}}\right) \cdot \left(g + \sqrt{\left(g - h\right) \cdot \left(g + h\right)}\right)}}{\sqrt[3]{\frac{a}{\sqrt[3]{\frac{-1}{2}}}}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification30.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le 1.820567991238995 \cdot 10^{-157}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\frac{\frac{1}{2}}{a}} \cdot \sqrt[3]{\left(-g\right) - g}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{1}{2}}{a} \cdot \left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} - g\right)} + \frac{\sqrt[3]{\left(\sqrt[3]{\frac{-1}{2}} \cdot \sqrt[3]{\frac{-1}{2}}\right) \cdot \left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right)}}{\sqrt[3]{\frac{a}{\sqrt[3]{\frac{-1}{2}}}}}\\ \end{array}\]

Reproduce

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