Average Error: 35.3 → 30.8
Time: 32.1s
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 -6.3921017940024375 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\frac{g \cdot g - \left(g - h\right) \cdot \left(h + g\right)}{g - \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}} + \frac{\sqrt[3]{\frac{1}{2} \cdot \left(\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g\right)}}{\sqrt[3]{a}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g}{a} \cdot \frac{1}{2}} + \sqrt[3]{g + g} \cdot \sqrt[3]{\frac{\frac{-1}{2}}{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 -6.3921017940024375 \cdot 10^{-161}:\\
\;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\frac{g \cdot g - \left(g - h\right) \cdot \left(h + g\right)}{g - \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}} + \frac{\sqrt[3]{\frac{1}{2} \cdot \left(\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g\right)}}{\sqrt[3]{a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r5443891 = 1.0;
        double r5443892 = 2.0;
        double r5443893 = a;
        double r5443894 = r5443892 * r5443893;
        double r5443895 = r5443891 / r5443894;
        double r5443896 = g;
        double r5443897 = -r5443896;
        double r5443898 = r5443896 * r5443896;
        double r5443899 = h;
        double r5443900 = r5443899 * r5443899;
        double r5443901 = r5443898 - r5443900;
        double r5443902 = sqrt(r5443901);
        double r5443903 = r5443897 + r5443902;
        double r5443904 = r5443895 * r5443903;
        double r5443905 = cbrt(r5443904);
        double r5443906 = r5443897 - r5443902;
        double r5443907 = r5443895 * r5443906;
        double r5443908 = cbrt(r5443907);
        double r5443909 = r5443905 + r5443908;
        return r5443909;
}

double f(double g, double h, double a) {
        double r5443910 = g;
        double r5443911 = -6.3921017940024375e-161;
        bool r5443912 = r5443910 <= r5443911;
        double r5443913 = -0.5;
        double r5443914 = a;
        double r5443915 = r5443913 / r5443914;
        double r5443916 = cbrt(r5443915);
        double r5443917 = r5443910 * r5443910;
        double r5443918 = h;
        double r5443919 = r5443910 - r5443918;
        double r5443920 = r5443918 + r5443910;
        double r5443921 = r5443919 * r5443920;
        double r5443922 = r5443917 - r5443921;
        double r5443923 = sqrt(r5443921);
        double r5443924 = r5443910 - r5443923;
        double r5443925 = r5443922 / r5443924;
        double r5443926 = cbrt(r5443925);
        double r5443927 = r5443916 * r5443926;
        double r5443928 = 0.5;
        double r5443929 = r5443923 - r5443910;
        double r5443930 = r5443928 * r5443929;
        double r5443931 = cbrt(r5443930);
        double r5443932 = cbrt(r5443914);
        double r5443933 = r5443931 / r5443932;
        double r5443934 = r5443927 + r5443933;
        double r5443935 = r5443929 / r5443914;
        double r5443936 = r5443935 * r5443928;
        double r5443937 = cbrt(r5443936);
        double r5443938 = r5443910 + r5443910;
        double r5443939 = cbrt(r5443938);
        double r5443940 = r5443939 * r5443916;
        double r5443941 = r5443937 + r5443940;
        double r5443942 = r5443912 ? r5443934 : r5443941;
        return r5443942;
}

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 < -6.3921017940024375e-161

    1. Initial program 34.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. Simplified34.4

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

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

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

      \[\leadsto \color{blue}{\frac{\sqrt[3]{\left(\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g\right) \cdot \frac{1}{2}}}{\sqrt[3]{a}}} + \sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{g + \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}\]
    8. Using strategy rm
    9. Applied flip-+30.2

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

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

    if -6.3921017940024375e-161 < g

    1. Initial program 36.2

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

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

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

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

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

Reproduce

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