Average Error: 35.5 → 31.4
Time: 22.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.079954365560622 \cdot 10^{-159}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{a \cdot 2}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\left|\sqrt[3]{g \cdot g - h \cdot h}\right| \cdot \sqrt{\sqrt[3]{g \cdot g - h \cdot h}} + g} + \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{a \cdot 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.079954365560622 \cdot 10^{-159}:\\
\;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{a \cdot 2}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r2320874 = 1.0;
        double r2320875 = 2.0;
        double r2320876 = a;
        double r2320877 = r2320875 * r2320876;
        double r2320878 = r2320874 / r2320877;
        double r2320879 = g;
        double r2320880 = -r2320879;
        double r2320881 = r2320879 * r2320879;
        double r2320882 = h;
        double r2320883 = r2320882 * r2320882;
        double r2320884 = r2320881 - r2320883;
        double r2320885 = sqrt(r2320884);
        double r2320886 = r2320880 + r2320885;
        double r2320887 = r2320878 * r2320886;
        double r2320888 = cbrt(r2320887);
        double r2320889 = r2320880 - r2320885;
        double r2320890 = r2320878 * r2320889;
        double r2320891 = cbrt(r2320890);
        double r2320892 = r2320888 + r2320891;
        return r2320892;
}

double f(double g, double h, double a) {
        double r2320893 = g;
        double r2320894 = 1.079954365560622e-159;
        bool r2320895 = r2320893 <= r2320894;
        double r2320896 = r2320893 * r2320893;
        double r2320897 = h;
        double r2320898 = r2320897 * r2320897;
        double r2320899 = r2320896 - r2320898;
        double r2320900 = sqrt(r2320899);
        double r2320901 = r2320900 + r2320893;
        double r2320902 = -0.5;
        double r2320903 = a;
        double r2320904 = r2320902 / r2320903;
        double r2320905 = r2320901 * r2320904;
        double r2320906 = cbrt(r2320905);
        double r2320907 = -r2320893;
        double r2320908 = r2320907 - r2320893;
        double r2320909 = cbrt(r2320908);
        double r2320910 = 2.0;
        double r2320911 = r2320903 * r2320910;
        double r2320912 = cbrt(r2320911);
        double r2320913 = r2320909 / r2320912;
        double r2320914 = r2320906 + r2320913;
        double r2320915 = cbrt(r2320904);
        double r2320916 = cbrt(r2320899);
        double r2320917 = fabs(r2320916);
        double r2320918 = sqrt(r2320916);
        double r2320919 = r2320917 * r2320918;
        double r2320920 = r2320919 + r2320893;
        double r2320921 = cbrt(r2320920);
        double r2320922 = r2320915 * r2320921;
        double r2320923 = r2320900 - r2320893;
        double r2320924 = cbrt(r2320923);
        double r2320925 = r2320924 / r2320912;
        double r2320926 = r2320922 + r2320925;
        double r2320927 = r2320895 ? r2320914 : r2320926;
        return r2320927;
}

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.079954365560622e-159

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

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

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

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

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

    if 1.079954365560622e-159 < g

    1. Initial program 34.1

      \[\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}{2 \cdot a}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)}}\]
    3. Using strategy rm
    4. Applied cbrt-div34.0

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

      \[\leadsto \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{2 \cdot a}} + \color{blue}{\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} + g}}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt30.5

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

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

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

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

Reproduce

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