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

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

\end{array}
double f(double g, double h, double a) {
        double r4626802 = 1.0;
        double r4626803 = 2.0;
        double r4626804 = a;
        double r4626805 = r4626803 * r4626804;
        double r4626806 = r4626802 / r4626805;
        double r4626807 = g;
        double r4626808 = -r4626807;
        double r4626809 = r4626807 * r4626807;
        double r4626810 = h;
        double r4626811 = r4626810 * r4626810;
        double r4626812 = r4626809 - r4626811;
        double r4626813 = sqrt(r4626812);
        double r4626814 = r4626808 + r4626813;
        double r4626815 = r4626806 * r4626814;
        double r4626816 = cbrt(r4626815);
        double r4626817 = r4626808 - r4626813;
        double r4626818 = r4626806 * r4626817;
        double r4626819 = cbrt(r4626818);
        double r4626820 = r4626816 + r4626819;
        return r4626820;
}

double f(double g, double h, double a) {
        double r4626821 = g;
        double r4626822 = -3.572798755567818e-163;
        bool r4626823 = r4626821 <= r4626822;
        double r4626824 = 1.0;
        double r4626825 = 2.0;
        double r4626826 = a;
        double r4626827 = r4626825 * r4626826;
        double r4626828 = r4626824 / r4626827;
        double r4626829 = -r4626821;
        double r4626830 = r4626821 * r4626821;
        double r4626831 = h;
        double r4626832 = r4626831 * r4626831;
        double r4626833 = r4626830 - r4626832;
        double r4626834 = sqrt(r4626833);
        double r4626835 = r4626829 - r4626834;
        double r4626836 = r4626828 * r4626835;
        double r4626837 = cbrt(r4626836);
        double r4626838 = r4626821 + r4626821;
        double r4626839 = -r4626838;
        double r4626840 = cbrt(r4626839);
        double r4626841 = cbrt(r4626828);
        double r4626842 = r4626840 * r4626841;
        double r4626843 = r4626837 + r4626842;
        double r4626844 = cbrt(r4626835);
        double r4626845 = r4626841 * r4626844;
        double r4626846 = r4626824 * r4626832;
        double r4626847 = r4626846 / r4626827;
        double r4626848 = cbrt(r4626847);
        double r4626849 = r4626848 / r4626844;
        double r4626850 = r4626845 + r4626849;
        double r4626851 = r4626823 ? r4626843 : r4626850;
        return r4626851;
}

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.572798755567818e-163

    1. Initial program 34.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. Using strategy rm
    3. Applied cbrt-prod30.8

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

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

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

    if -3.572798755567818e-163 < g

    1. Initial program 36.2

      \[\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-prod32.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. Using strategy rm
    5. Applied flip-+31.9

      \[\leadsto \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}}}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
    6. Applied associate-*r/32.0

      \[\leadsto \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}}}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
    7. Applied cbrt-div32.0

      \[\leadsto \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}}}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
    8. Simplified32.1

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

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

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  (+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))