Average Error: 36.1 → 31.9
Time: 33.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 -8.359356862874829159472492534077743049279 \cdot 10^{-185}:\\ \;\;\;\;\frac{\sqrt[3]{1 \cdot \left(\sqrt{\sqrt{g \cdot g - h \cdot h}} \cdot \sqrt{\sqrt{g \cdot g - h \cdot h}} - g\right)}}{\sqrt[3]{2 \cdot a}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - g}\\ \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 -8.359356862874829159472492534077743049279 \cdot 10^{-185}:\\
\;\;\;\;\frac{\sqrt[3]{1 \cdot \left(\sqrt{\sqrt{g \cdot g - h \cdot h}} \cdot \sqrt{\sqrt{g \cdot g - h \cdot h}} - g\right)}}{\sqrt[3]{2 \cdot a}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r115813 = 1.0;
        double r115814 = 2.0;
        double r115815 = a;
        double r115816 = r115814 * r115815;
        double r115817 = r115813 / r115816;
        double r115818 = g;
        double r115819 = -r115818;
        double r115820 = r115818 * r115818;
        double r115821 = h;
        double r115822 = r115821 * r115821;
        double r115823 = r115820 - r115822;
        double r115824 = sqrt(r115823);
        double r115825 = r115819 + r115824;
        double r115826 = r115817 * r115825;
        double r115827 = cbrt(r115826);
        double r115828 = r115819 - r115824;
        double r115829 = r115817 * r115828;
        double r115830 = cbrt(r115829);
        double r115831 = r115827 + r115830;
        return r115831;
}

double f(double g, double h, double a) {
        double r115832 = g;
        double r115833 = -8.359356862874829e-185;
        bool r115834 = r115832 <= r115833;
        double r115835 = 1.0;
        double r115836 = r115832 * r115832;
        double r115837 = h;
        double r115838 = r115837 * r115837;
        double r115839 = r115836 - r115838;
        double r115840 = sqrt(r115839);
        double r115841 = sqrt(r115840);
        double r115842 = r115841 * r115841;
        double r115843 = r115842 - r115832;
        double r115844 = r115835 * r115843;
        double r115845 = cbrt(r115844);
        double r115846 = 2.0;
        double r115847 = a;
        double r115848 = r115846 * r115847;
        double r115849 = cbrt(r115848);
        double r115850 = r115845 / r115849;
        double r115851 = r115835 / r115848;
        double r115852 = cbrt(r115851);
        double r115853 = -r115832;
        double r115854 = r115853 - r115840;
        double r115855 = cbrt(r115854);
        double r115856 = r115852 * r115855;
        double r115857 = r115850 + r115856;
        double r115858 = r115840 - r115832;
        double r115859 = r115851 * r115858;
        double r115860 = cbrt(r115859);
        double r115861 = r115853 - r115832;
        double r115862 = cbrt(r115861);
        double r115863 = r115852 * r115862;
        double r115864 = r115860 + r115863;
        double r115865 = r115834 ? r115857 : r115864;
        return r115865;
}

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 < -8.359356862874829e-185

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

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

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

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

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

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

    if -8.359356862874829e-185 < 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{1}{2 \cdot a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}\]
    3. Using strategy rm
    4. Applied cbrt-prod33.4

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

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

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

Reproduce

herbie shell --seed 2019326 
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  :precision binary64
  (+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))