Average Error: 34.8 → 30.6
Time: 38.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 2.719394348405648 \cdot 10^{-161}:\\ \;\;\;\;\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]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{g - g}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)}}{\sqrt[3]{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.719394348405648 \cdot 10^{-161}:\\
\;\;\;\;\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]{2 \cdot a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r17946779 = 1.0;
        double r17946780 = 2.0;
        double r17946781 = a;
        double r17946782 = r17946780 * r17946781;
        double r17946783 = r17946779 / r17946782;
        double r17946784 = g;
        double r17946785 = -r17946784;
        double r17946786 = r17946784 * r17946784;
        double r17946787 = h;
        double r17946788 = r17946787 * r17946787;
        double r17946789 = r17946786 - r17946788;
        double r17946790 = sqrt(r17946789);
        double r17946791 = r17946785 + r17946790;
        double r17946792 = r17946783 * r17946791;
        double r17946793 = cbrt(r17946792);
        double r17946794 = r17946785 - r17946790;
        double r17946795 = r17946783 * r17946794;
        double r17946796 = cbrt(r17946795);
        double r17946797 = r17946793 + r17946796;
        return r17946797;
}

double f(double g, double h, double a) {
        double r17946798 = g;
        double r17946799 = 2.719394348405648e-161;
        bool r17946800 = r17946798 <= r17946799;
        double r17946801 = r17946798 * r17946798;
        double r17946802 = h;
        double r17946803 = r17946802 * r17946802;
        double r17946804 = r17946801 - r17946803;
        double r17946805 = sqrt(r17946804);
        double r17946806 = r17946805 + r17946798;
        double r17946807 = -0.5;
        double r17946808 = a;
        double r17946809 = r17946807 / r17946808;
        double r17946810 = r17946806 * r17946809;
        double r17946811 = cbrt(r17946810);
        double r17946812 = -r17946798;
        double r17946813 = r17946812 - r17946798;
        double r17946814 = cbrt(r17946813);
        double r17946815 = 2.0;
        double r17946816 = r17946815 * r17946808;
        double r17946817 = cbrt(r17946816);
        double r17946818 = r17946814 / r17946817;
        double r17946819 = r17946811 + r17946818;
        double r17946820 = r17946798 - r17946798;
        double r17946821 = cbrt(r17946820);
        double r17946822 = r17946821 / r17946817;
        double r17946823 = r17946807 * r17946806;
        double r17946824 = cbrt(r17946823);
        double r17946825 = cbrt(r17946808);
        double r17946826 = r17946824 / r17946825;
        double r17946827 = r17946822 + r17946826;
        double r17946828 = r17946800 ? r17946819 : r17946827;
        return r17946828;
}

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.719394348405648e-161

    1. Initial program 35.3

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

      \[\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 cbrt-div31.8

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

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

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

    if 2.719394348405648e-161 < g

    1. Initial program 34.3

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

      \[\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 cbrt-div34.2

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

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

      \[\leadsto \frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{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}}}\]
    8. Taylor expanded around inf 30.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le 2.719394348405648 \cdot 10^{-161}:\\ \;\;\;\;\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]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{g - g}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)}}{\sqrt[3]{a}}\\ \end{array}\]

Reproduce

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