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

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

\end{array}
double f(double g, double h, double a) {
        double r2394044 = 1.0;
        double r2394045 = 2.0;
        double r2394046 = a;
        double r2394047 = r2394045 * r2394046;
        double r2394048 = r2394044 / r2394047;
        double r2394049 = g;
        double r2394050 = -r2394049;
        double r2394051 = r2394049 * r2394049;
        double r2394052 = h;
        double r2394053 = r2394052 * r2394052;
        double r2394054 = r2394051 - r2394053;
        double r2394055 = sqrt(r2394054);
        double r2394056 = r2394050 + r2394055;
        double r2394057 = r2394048 * r2394056;
        double r2394058 = cbrt(r2394057);
        double r2394059 = r2394050 - r2394055;
        double r2394060 = r2394048 * r2394059;
        double r2394061 = cbrt(r2394060);
        double r2394062 = r2394058 + r2394061;
        return r2394062;
}

double f(double g, double h, double a) {
        double r2394063 = g;
        double r2394064 = 2.5929545688553364e-160;
        bool r2394065 = r2394063 <= r2394064;
        double r2394066 = r2394063 * r2394063;
        double r2394067 = h;
        double r2394068 = r2394067 * r2394067;
        double r2394069 = r2394066 - r2394068;
        double r2394070 = sqrt(r2394069);
        double r2394071 = r2394063 + r2394070;
        double r2394072 = -0.5;
        double r2394073 = a;
        double r2394074 = r2394072 / r2394073;
        double r2394075 = r2394071 * r2394074;
        double r2394076 = cbrt(r2394075);
        double r2394077 = -r2394063;
        double r2394078 = r2394077 - r2394063;
        double r2394079 = 2.0;
        double r2394080 = r2394078 / r2394079;
        double r2394081 = cbrt(r2394080);
        double r2394082 = 1.0;
        double r2394083 = r2394082 / r2394073;
        double r2394084 = cbrt(r2394083);
        double r2394085 = r2394081 * r2394084;
        double r2394086 = r2394076 + r2394085;
        double r2394087 = r2394072 * r2394071;
        double r2394088 = cbrt(r2394087);
        double r2394089 = cbrt(r2394073);
        double r2394090 = r2394088 / r2394089;
        double r2394091 = r2394070 - r2394063;
        double r2394092 = 0.5;
        double r2394093 = r2394073 / r2394092;
        double r2394094 = r2394091 / r2394093;
        double r2394095 = cbrt(r2394094);
        double r2394096 = r2394090 + r2394095;
        double r2394097 = r2394065 ? r2394086 : r2394096;
        return r2394097;
}

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.5929545688553364e-160

    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}{\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 div-inv36.8

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

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

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

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

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

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

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

    if 2.5929545688553364e-160 < 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.1

      \[\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/34.1

      \[\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-div30.6

      \[\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}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.4

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

Reproduce

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