Average Error: 35.1 → 31.0
Time: 25.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 2.4448816157766584 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + 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 \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 2.4448816157766584 \cdot 10^{-161}:\\
\;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + 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 \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 r2945931 = 1.0;
        double r2945932 = 2.0;
        double r2945933 = a;
        double r2945934 = r2945932 * r2945933;
        double r2945935 = r2945931 / r2945934;
        double r2945936 = g;
        double r2945937 = -r2945936;
        double r2945938 = r2945936 * r2945936;
        double r2945939 = h;
        double r2945940 = r2945939 * r2945939;
        double r2945941 = r2945938 - r2945940;
        double r2945942 = sqrt(r2945941);
        double r2945943 = r2945937 + r2945942;
        double r2945944 = r2945935 * r2945943;
        double r2945945 = cbrt(r2945944);
        double r2945946 = r2945937 - r2945942;
        double r2945947 = r2945935 * r2945946;
        double r2945948 = cbrt(r2945947);
        double r2945949 = r2945945 + r2945948;
        return r2945949;
}

double f(double g, double h, double a) {
        double r2945950 = g;
        double r2945951 = 2.4448816157766584e-161;
        bool r2945952 = r2945950 <= r2945951;
        double r2945953 = r2945950 * r2945950;
        double r2945954 = h;
        double r2945955 = r2945954 * r2945954;
        double r2945956 = r2945953 - r2945955;
        double r2945957 = sqrt(r2945956);
        double r2945958 = r2945957 + r2945950;
        double r2945959 = -0.5;
        double r2945960 = a;
        double r2945961 = r2945959 / r2945960;
        double r2945962 = r2945958 * r2945961;
        double r2945963 = cbrt(r2945962);
        double r2945964 = 0.5;
        double r2945965 = r2945964 / r2945960;
        double r2945966 = cbrt(r2945965);
        double r2945967 = -r2945950;
        double r2945968 = r2945967 - r2945950;
        double r2945969 = cbrt(r2945968);
        double r2945970 = r2945966 * r2945969;
        double r2945971 = r2945963 + r2945970;
        double r2945972 = cbrt(r2945961);
        double r2945973 = cbrt(r2945958);
        double r2945974 = r2945972 * r2945973;
        double r2945975 = r2945957 - r2945950;
        double r2945976 = 2.0;
        double r2945977 = r2945976 * r2945960;
        double r2945978 = r2945975 / r2945977;
        double r2945979 = cbrt(r2945978);
        double r2945980 = r2945974 + r2945979;
        double r2945981 = r2945952 ? r2945971 : r2945980;
        return r2945981;
}

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

    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{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 div-inv36.2

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

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

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

      \[\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(\sqrt{g \cdot g - h \cdot h} + g\right)}\]
    8. Simplified31.7

      \[\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(\sqrt{g \cdot g - h \cdot h} + g\right)}\]

    if 2.4448816157766584e-161 < g

    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}{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-prod30.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le 2.4448816157766584 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + 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 \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 2019155 
(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))))))))