Average Error: 35.3 → 31.1
Time: 32.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)}\]
\[\begin{array}{l} \mathbf{if}\;g \le 1.5390950005720738 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} + g}{-2 \cdot 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 \sqrt[3]{\sqrt{g \cdot g - h \cdot h} + g} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2 \cdot a}}\\ \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.5390950005720738 \cdot 10^{-161}:\\
\;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} + g}{-2 \cdot 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 \sqrt[3]{\sqrt{g \cdot g - h \cdot h} + g} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2 \cdot a}}\\

\end{array}
double f(double g, double h, double a) {
        double r5143745 = 1.0;
        double r5143746 = 2.0;
        double r5143747 = a;
        double r5143748 = r5143746 * r5143747;
        double r5143749 = r5143745 / r5143748;
        double r5143750 = g;
        double r5143751 = -r5143750;
        double r5143752 = r5143750 * r5143750;
        double r5143753 = h;
        double r5143754 = r5143753 * r5143753;
        double r5143755 = r5143752 - r5143754;
        double r5143756 = sqrt(r5143755);
        double r5143757 = r5143751 + r5143756;
        double r5143758 = r5143749 * r5143757;
        double r5143759 = cbrt(r5143758);
        double r5143760 = r5143751 - r5143756;
        double r5143761 = r5143749 * r5143760;
        double r5143762 = cbrt(r5143761);
        double r5143763 = r5143759 + r5143762;
        return r5143763;
}

double f(double g, double h, double a) {
        double r5143764 = g;
        double r5143765 = 1.5390950005720738e-161;
        bool r5143766 = r5143764 <= r5143765;
        double r5143767 = r5143764 * r5143764;
        double r5143768 = h;
        double r5143769 = r5143768 * r5143768;
        double r5143770 = r5143767 - r5143769;
        double r5143771 = sqrt(r5143770);
        double r5143772 = r5143771 + r5143764;
        double r5143773 = -2.0;
        double r5143774 = a;
        double r5143775 = r5143773 * r5143774;
        double r5143776 = r5143772 / r5143775;
        double r5143777 = cbrt(r5143776);
        double r5143778 = 0.5;
        double r5143779 = r5143778 / r5143774;
        double r5143780 = cbrt(r5143779);
        double r5143781 = -r5143764;
        double r5143782 = r5143781 - r5143764;
        double r5143783 = cbrt(r5143782);
        double r5143784 = r5143780 * r5143783;
        double r5143785 = r5143777 + r5143784;
        double r5143786 = -0.5;
        double r5143787 = r5143786 / r5143774;
        double r5143788 = cbrt(r5143787);
        double r5143789 = cbrt(r5143772);
        double r5143790 = r5143788 * r5143789;
        double r5143791 = r5143771 - r5143764;
        double r5143792 = 2.0;
        double r5143793 = r5143792 * r5143774;
        double r5143794 = r5143791 / r5143793;
        double r5143795 = cbrt(r5143794);
        double r5143796 = r5143790 + r5143795;
        double r5143797 = r5143766 ? r5143785 : r5143796;
        return r5143797;
}

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.5390950005720738e-161

    1. Initial program 36.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. Simplified36.4

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{\frac{g + \sqrt{g \cdot g - h \cdot h}}{-2 \cdot a}}}\]
    3. Using strategy rm
    4. Applied div-inv36.4

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

      \[\leadsto \color{blue}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} \cdot \sqrt[3]{\frac{1}{a \cdot 2}}} + \sqrt[3]{\frac{g + \sqrt{g \cdot g - h \cdot h}}{-2 \cdot a}}\]
    6. Simplified32.6

      \[\leadsto \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} \cdot \color{blue}{\sqrt[3]{\frac{\frac{1}{2}}{a}}} + \sqrt[3]{\frac{g + \sqrt{g \cdot g - h \cdot h}}{-2 \cdot a}}\]
    7. Taylor expanded around -inf 31.8

      \[\leadsto \sqrt[3]{\color{blue}{-1 \cdot g} - g} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}} + \sqrt[3]{\frac{g + \sqrt{g \cdot g - h \cdot h}}{-2 \cdot a}}\]
    8. Simplified31.8

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

    if 1.5390950005720738e-161 < g

    1. Initial program 34.0

      \[\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. Simplified34.0

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{\frac{g + \sqrt{g \cdot g - h \cdot h}}{-2 \cdot a}}}\]
    3. Using strategy rm
    4. Applied div-inv34.0

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

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \color{blue}{\sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}} \cdot \sqrt[3]{\frac{1}{-2 \cdot a}}}\]
    6. Simplified30.3

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}} \cdot \color{blue}{\sqrt[3]{\frac{\frac{-1}{2}}{a}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le 1.5390950005720738 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} + g}{-2 \cdot 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 \sqrt[3]{\sqrt{g \cdot g - h \cdot h} + g} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2 \cdot a}}\\ \end{array}\]

Reproduce

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