Average Error: 36.2 → 31.6
Time: 35.7s
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.421984391530689600469067551996753796002 \cdot 10^{-165}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{h \cdot h}{\frac{2 \cdot a}{1}}}}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\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 \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 -3.421984391530689600469067551996753796002 \cdot 10^{-165}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{h \cdot h}{\frac{2 \cdot a}{1}}}}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}}\\

\mathbf{else}:\\
\;\;\;\;\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 \sqrt[3]{\left(-g\right) - g}\\

\end{array}
double f(double g, double h, double a) {
        double r137824 = 1.0;
        double r137825 = 2.0;
        double r137826 = a;
        double r137827 = r137825 * r137826;
        double r137828 = r137824 / r137827;
        double r137829 = g;
        double r137830 = -r137829;
        double r137831 = r137829 * r137829;
        double r137832 = h;
        double r137833 = r137832 * r137832;
        double r137834 = r137831 - r137833;
        double r137835 = sqrt(r137834);
        double r137836 = r137830 + r137835;
        double r137837 = r137828 * r137836;
        double r137838 = cbrt(r137837);
        double r137839 = r137830 - r137835;
        double r137840 = r137828 * r137839;
        double r137841 = cbrt(r137840);
        double r137842 = r137838 + r137841;
        return r137842;
}

double f(double g, double h, double a) {
        double r137843 = g;
        double r137844 = -3.4219843915306896e-165;
        bool r137845 = r137843 <= r137844;
        double r137846 = h;
        double r137847 = r137846 * r137846;
        double r137848 = 2.0;
        double r137849 = a;
        double r137850 = r137848 * r137849;
        double r137851 = 1.0;
        double r137852 = r137850 / r137851;
        double r137853 = r137847 / r137852;
        double r137854 = cbrt(r137853);
        double r137855 = r137843 * r137843;
        double r137856 = r137855 - r137847;
        double r137857 = sqrt(r137856);
        double r137858 = r137857 - r137843;
        double r137859 = cbrt(r137858);
        double r137860 = r137854 / r137859;
        double r137861 = r137851 * r137858;
        double r137862 = cbrt(r137861);
        double r137863 = cbrt(r137850);
        double r137864 = r137862 / r137863;
        double r137865 = r137860 + r137864;
        double r137866 = r137851 / r137850;
        double r137867 = -r137843;
        double r137868 = r137867 + r137857;
        double r137869 = r137866 * r137868;
        double r137870 = cbrt(r137869);
        double r137871 = cbrt(r137866);
        double r137872 = r137867 - r137843;
        double r137873 = cbrt(r137872);
        double r137874 = r137871 * r137873;
        double r137875 = r137870 + r137874;
        double r137876 = r137845 ? r137865 : r137875;
        return r137876;
}

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.4219843915306896e-165

    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. Using strategy rm
    3. Applied associate-*l/35.3

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

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

      \[\leadsto \frac{\color{blue}{\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 \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
    6. Using strategy rm
    7. Applied flip--31.3

      \[\leadsto \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 \color{blue}{\frac{\left(-g\right) \cdot \left(-g\right) - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}}{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}}}}\]
    8. Applied associate-*r/31.4

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

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

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

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

    if -3.4219843915306896e-165 < g

    1. Initial program 36.9

      \[\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. Using strategy rm
    3. Applied cbrt-prod33.0

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

      \[\leadsto \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 \sqrt[3]{\left(-g\right) - \color{blue}{g}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.6

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

Reproduce

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