Average Error: 34.6 → 29.9
Time: 28.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.6459856019794505 \cdot 10^{-166}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{-h \cdot h}{\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g}} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}} + \sqrt[3]{\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g} \cdot \sqrt[3]{\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 2.6459856019794505 \cdot 10^{-166}:\\
\;\;\;\;\sqrt[3]{\left(\sqrt{\left(h + g\right) \cdot \left(g - h\right)} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r6114804 = 1.0;
        double r6114805 = 2.0;
        double r6114806 = a;
        double r6114807 = r6114805 * r6114806;
        double r6114808 = r6114804 / r6114807;
        double r6114809 = g;
        double r6114810 = -r6114809;
        double r6114811 = r6114809 * r6114809;
        double r6114812 = h;
        double r6114813 = r6114812 * r6114812;
        double r6114814 = r6114811 - r6114813;
        double r6114815 = sqrt(r6114814);
        double r6114816 = r6114810 + r6114815;
        double r6114817 = r6114808 * r6114816;
        double r6114818 = cbrt(r6114817);
        double r6114819 = r6114810 - r6114815;
        double r6114820 = r6114808 * r6114819;
        double r6114821 = cbrt(r6114820);
        double r6114822 = r6114818 + r6114821;
        return r6114822;
}

double f(double g, double h, double a) {
        double r6114823 = g;
        double r6114824 = 2.6459856019794505e-166;
        bool r6114825 = r6114823 <= r6114824;
        double r6114826 = h;
        double r6114827 = r6114826 + r6114823;
        double r6114828 = r6114823 - r6114826;
        double r6114829 = r6114827 * r6114828;
        double r6114830 = sqrt(r6114829);
        double r6114831 = r6114830 + r6114823;
        double r6114832 = -0.5;
        double r6114833 = a;
        double r6114834 = r6114832 / r6114833;
        double r6114835 = r6114831 * r6114834;
        double r6114836 = cbrt(r6114835);
        double r6114837 = -r6114823;
        double r6114838 = r6114837 - r6114823;
        double r6114839 = cbrt(r6114838);
        double r6114840 = 0.5;
        double r6114841 = r6114840 / r6114833;
        double r6114842 = cbrt(r6114841);
        double r6114843 = r6114839 * r6114842;
        double r6114844 = r6114836 + r6114843;
        double r6114845 = r6114826 * r6114826;
        double r6114846 = -r6114845;
        double r6114847 = r6114846 / r6114831;
        double r6114848 = cbrt(r6114847);
        double r6114849 = r6114848 * r6114842;
        double r6114850 = cbrt(r6114831);
        double r6114851 = cbrt(r6114834);
        double r6114852 = r6114850 * r6114851;
        double r6114853 = r6114849 + r6114852;
        double r6114854 = r6114825 ? r6114844 : r6114853;
        return r6114854;
}

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.6459856019794505e-166

    1. Initial program 35.6

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

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

      \[\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)}\]
    5. Taylor expanded around -inf 30.9

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

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

    if 2.6459856019794505e-166 < g

    1. Initial program 33.5

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

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

      \[\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)}\]
    5. Using strategy rm
    6. Applied cbrt-prod29.8

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

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

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

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

Reproduce

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