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

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

\end{array}
double f(double g, double h, double a) {
        double r7154794 = 1.0;
        double r7154795 = 2.0;
        double r7154796 = a;
        double r7154797 = r7154795 * r7154796;
        double r7154798 = r7154794 / r7154797;
        double r7154799 = g;
        double r7154800 = -r7154799;
        double r7154801 = r7154799 * r7154799;
        double r7154802 = h;
        double r7154803 = r7154802 * r7154802;
        double r7154804 = r7154801 - r7154803;
        double r7154805 = sqrt(r7154804);
        double r7154806 = r7154800 + r7154805;
        double r7154807 = r7154798 * r7154806;
        double r7154808 = cbrt(r7154807);
        double r7154809 = r7154800 - r7154805;
        double r7154810 = r7154798 * r7154809;
        double r7154811 = cbrt(r7154810);
        double r7154812 = r7154808 + r7154811;
        return r7154812;
}

double f(double g, double h, double a) {
        double r7154813 = g;
        double r7154814 = -3.035091110489776e-158;
        bool r7154815 = r7154813 <= r7154814;
        double r7154816 = h;
        double r7154817 = r7154813 + r7154816;
        double r7154818 = r7154813 - r7154816;
        double r7154819 = r7154817 * r7154818;
        double r7154820 = sqrt(r7154819);
        double r7154821 = r7154820 - r7154813;
        double r7154822 = cbrt(r7154821);
        double r7154823 = 0.5;
        double r7154824 = a;
        double r7154825 = r7154823 / r7154824;
        double r7154826 = cbrt(r7154825);
        double r7154827 = r7154822 * r7154826;
        double r7154828 = -0.5;
        double r7154829 = r7154828 / r7154824;
        double r7154830 = r7154813 + r7154820;
        double r7154831 = r7154829 * r7154830;
        double r7154832 = cbrt(r7154831);
        double r7154833 = r7154827 + r7154832;
        double r7154834 = r7154813 + r7154813;
        double r7154835 = r7154834 * r7154828;
        double r7154836 = cbrt(r7154835);
        double r7154837 = cbrt(r7154824);
        double r7154838 = r7154836 / r7154837;
        double r7154839 = r7154821 * r7154825;
        double r7154840 = cbrt(r7154839);
        double r7154841 = r7154838 + r7154840;
        double r7154842 = r7154815 ? r7154833 : r7154841;
        return r7154842;
}

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 < -3.035091110489776e-158

    1. Initial program 33.7

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

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

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

    if -3.035091110489776e-158 < g

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

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

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

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

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

Reproduce

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