Average Error: 34.9 → 30.8
Time: 28.7s
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.1044730434263153 \cdot 10^{-162}:\\ \;\;\;\;\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{g - g}{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 2.1044730434263153 \cdot 10^{-162}:\\
\;\;\;\;\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{g - g}{a \cdot 2}}\\

\end{array}
double f(double g, double h, double a) {
        double r5222062 = 1.0;
        double r5222063 = 2.0;
        double r5222064 = a;
        double r5222065 = r5222063 * r5222064;
        double r5222066 = r5222062 / r5222065;
        double r5222067 = g;
        double r5222068 = -r5222067;
        double r5222069 = r5222067 * r5222067;
        double r5222070 = h;
        double r5222071 = r5222070 * r5222070;
        double r5222072 = r5222069 - r5222071;
        double r5222073 = sqrt(r5222072);
        double r5222074 = r5222068 + r5222073;
        double r5222075 = r5222066 * r5222074;
        double r5222076 = cbrt(r5222075);
        double r5222077 = r5222068 - r5222073;
        double r5222078 = r5222066 * r5222077;
        double r5222079 = cbrt(r5222078);
        double r5222080 = r5222076 + r5222079;
        return r5222080;
}

double f(double g, double h, double a) {
        double r5222081 = g;
        double r5222082 = 2.1044730434263153e-162;
        bool r5222083 = r5222081 <= r5222082;
        double r5222084 = r5222081 * r5222081;
        double r5222085 = h;
        double r5222086 = r5222085 * r5222085;
        double r5222087 = r5222084 - r5222086;
        double r5222088 = sqrt(r5222087);
        double r5222089 = r5222081 + r5222088;
        double r5222090 = -0.5;
        double r5222091 = a;
        double r5222092 = r5222090 / r5222091;
        double r5222093 = r5222089 * r5222092;
        double r5222094 = cbrt(r5222093);
        double r5222095 = -r5222081;
        double r5222096 = r5222095 - r5222081;
        double r5222097 = 2.0;
        double r5222098 = r5222096 / r5222097;
        double r5222099 = cbrt(r5222098);
        double r5222100 = 1.0;
        double r5222101 = r5222100 / r5222091;
        double r5222102 = cbrt(r5222101);
        double r5222103 = r5222099 * r5222102;
        double r5222104 = r5222094 + r5222103;
        double r5222105 = r5222090 * r5222089;
        double r5222106 = cbrt(r5222105);
        double r5222107 = cbrt(r5222091);
        double r5222108 = r5222106 / r5222107;
        double r5222109 = r5222081 - r5222081;
        double r5222110 = r5222091 * r5222097;
        double r5222111 = r5222109 / r5222110;
        double r5222112 = cbrt(r5222111);
        double r5222113 = r5222108 + r5222112;
        double r5222114 = r5222083 ? r5222104 : r5222113;
        return r5222114;
}

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

    1. Initial program 35.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. Simplified35.4

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 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 *-un-lft-identity35.4

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

      \[\leadsto \sqrt[3]{\color{blue}{\frac{1}{a} \cdot \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)}\]
    6. Applied cbrt-prod31.8

      \[\leadsto \color{blue}{\sqrt[3]{\frac{1}{a}} \cdot \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)}\]
    7. Taylor expanded around -inf 30.9

      \[\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)}\]
    8. Simplified30.9

      \[\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.1044730434263153e-162 < g

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

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 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.2

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

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 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 30.7

      \[\leadsto \sqrt[3]{\frac{\color{blue}{g} - g}{a \cdot 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 simplification30.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le 2.1044730434263153 \cdot 10^{-162}:\\ \;\;\;\;\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{g - g}{a \cdot 2}}\\ \end{array}\]

Reproduce

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