Average Error: 36.1 → 31.9
Time: 34.4s
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 r84840 = 1.0;
        double r84841 = 2.0;
        double r84842 = a;
        double r84843 = r84841 * r84842;
        double r84844 = r84840 / r84843;
        double r84845 = g;
        double r84846 = -r84845;
        double r84847 = r84845 * r84845;
        double r84848 = h;
        double r84849 = r84848 * r84848;
        double r84850 = r84847 - r84849;
        double r84851 = sqrt(r84850);
        double r84852 = r84846 + r84851;
        double r84853 = r84844 * r84852;
        double r84854 = cbrt(r84853);
        double r84855 = r84846 - r84851;
        double r84856 = r84844 * r84855;
        double r84857 = cbrt(r84856);
        double r84858 = r84854 + r84857;
        return r84858;
}

double f(double g, double h, double a) {
        double r84859 = g;
        double r84860 = -8.359356862874829e-185;
        bool r84861 = r84859 <= r84860;
        double r84862 = 1.0;
        double r84863 = r84859 * r84859;
        double r84864 = h;
        double r84865 = r84864 * r84864;
        double r84866 = r84863 - r84865;
        double r84867 = sqrt(r84866);
        double r84868 = sqrt(r84867);
        double r84869 = r84868 * r84868;
        double r84870 = r84869 - r84859;
        double r84871 = r84862 * r84870;
        double r84872 = cbrt(r84871);
        double r84873 = 2.0;
        double r84874 = a;
        double r84875 = r84873 * r84874;
        double r84876 = cbrt(r84875);
        double r84877 = r84872 / r84876;
        double r84878 = r84862 / r84875;
        double r84879 = cbrt(r84878);
        double r84880 = -r84859;
        double r84881 = r84880 - r84867;
        double r84882 = cbrt(r84881);
        double r84883 = r84879 * r84882;
        double r84884 = r84877 + r84883;
        double r84885 = r84867 - r84859;
        double r84886 = r84878 * r84885;
        double r84887 = cbrt(r84886);
        double r84888 = r84880 - r84859;
        double r84889 = cbrt(r84888);
        double r84890 = r84879 * r84889;
        double r84891 = r84887 + r84890;
        double r84892 = r84861 ? r84884 : r84891;
        return r84892;
}

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))))))))