Average Error: 35.2 → 31.6
Time: 31.8s
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.5974918824598454 \cdot 10^{-162}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}} \cdot \sqrt[3]{\frac{a}{\frac{1}{2}}}}} \cdot \sqrt[3]{\frac{\sqrt{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(g + \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{-1}{2}}}{\sqrt[3]{a}} + \sqrt[3]{\frac{g - g}{\frac{a}{\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.5974918824598454 \cdot 10^{-162}:\\
\;\;\;\;\sqrt[3]{\frac{\sqrt{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}} \cdot \sqrt[3]{\frac{a}{\frac{1}{2}}}}} \cdot \sqrt[3]{\frac{\sqrt{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{\frac{a}{\frac{1}{2}}}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}\\

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

\end{array}
double f(double g, double h, double a) {
        double r2182810 = 1.0;
        double r2182811 = 2.0;
        double r2182812 = a;
        double r2182813 = r2182811 * r2182812;
        double r2182814 = r2182810 / r2182813;
        double r2182815 = g;
        double r2182816 = -r2182815;
        double r2182817 = r2182815 * r2182815;
        double r2182818 = h;
        double r2182819 = r2182818 * r2182818;
        double r2182820 = r2182817 - r2182819;
        double r2182821 = sqrt(r2182820);
        double r2182822 = r2182816 + r2182821;
        double r2182823 = r2182814 * r2182822;
        double r2182824 = cbrt(r2182823);
        double r2182825 = r2182816 - r2182821;
        double r2182826 = r2182814 * r2182825;
        double r2182827 = cbrt(r2182826);
        double r2182828 = r2182824 + r2182827;
        return r2182828;
}

double f(double g, double h, double a) {
        double r2182829 = g;
        double r2182830 = -1.5974918824598454e-162;
        bool r2182831 = r2182829 <= r2182830;
        double r2182832 = r2182829 * r2182829;
        double r2182833 = h;
        double r2182834 = r2182833 * r2182833;
        double r2182835 = r2182832 - r2182834;
        double r2182836 = sqrt(r2182835);
        double r2182837 = r2182836 - r2182829;
        double r2182838 = sqrt(r2182837);
        double r2182839 = a;
        double r2182840 = 0.5;
        double r2182841 = r2182839 / r2182840;
        double r2182842 = cbrt(r2182841);
        double r2182843 = r2182842 * r2182842;
        double r2182844 = r2182838 / r2182843;
        double r2182845 = cbrt(r2182844);
        double r2182846 = r2182838 / r2182842;
        double r2182847 = cbrt(r2182846);
        double r2182848 = r2182845 * r2182847;
        double r2182849 = -0.5;
        double r2182850 = r2182849 / r2182839;
        double r2182851 = r2182829 + r2182836;
        double r2182852 = r2182850 * r2182851;
        double r2182853 = cbrt(r2182852);
        double r2182854 = r2182848 + r2182853;
        double r2182855 = r2182851 * r2182849;
        double r2182856 = cbrt(r2182855);
        double r2182857 = cbrt(r2182839);
        double r2182858 = r2182856 / r2182857;
        double r2182859 = r2182829 - r2182829;
        double r2182860 = r2182859 / r2182841;
        double r2182861 = cbrt(r2182860);
        double r2182862 = r2182858 + r2182861;
        double r2182863 = r2182831 ? r2182854 : r2182862;
        return r2182863;
}

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.5974918824598454e-162

    1. Initial program 33.8

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

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

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{\color{blue}{\left(\sqrt[3]{\frac{a}{\frac{1}{2}}} \cdot \sqrt[3]{\frac{a}{\frac{1}{2}}}\right) \cdot \sqrt[3]{\frac{a}{\frac{1}{2}}}}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}\]
    5. Applied add-sqr-sqrt34.0

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

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

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

    if -1.5974918824598454e-162 < g

    1. Initial program 36.5

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

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

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

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

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

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

Reproduce

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