Average Error: 35.0 → 30.8
Time: 36.9s
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 4.0607805810600363 \cdot 10^{-188}:\\ \;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{g - g}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)}}{\sqrt[3]{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 4.0607805810600363 \cdot 10^{-188}:\\
\;\;\;\;\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{\frac{-1}{2}}{a}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{2 \cdot a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r18751730 = 1.0;
        double r18751731 = 2.0;
        double r18751732 = a;
        double r18751733 = r18751731 * r18751732;
        double r18751734 = r18751730 / r18751733;
        double r18751735 = g;
        double r18751736 = -r18751735;
        double r18751737 = r18751735 * r18751735;
        double r18751738 = h;
        double r18751739 = r18751738 * r18751738;
        double r18751740 = r18751737 - r18751739;
        double r18751741 = sqrt(r18751740);
        double r18751742 = r18751736 + r18751741;
        double r18751743 = r18751734 * r18751742;
        double r18751744 = cbrt(r18751743);
        double r18751745 = r18751736 - r18751741;
        double r18751746 = r18751734 * r18751745;
        double r18751747 = cbrt(r18751746);
        double r18751748 = r18751744 + r18751747;
        return r18751748;
}

double f(double g, double h, double a) {
        double r18751749 = g;
        double r18751750 = 4.0607805810600363e-188;
        bool r18751751 = r18751749 <= r18751750;
        double r18751752 = r18751749 * r18751749;
        double r18751753 = h;
        double r18751754 = r18751753 * r18751753;
        double r18751755 = r18751752 - r18751754;
        double r18751756 = sqrt(r18751755);
        double r18751757 = r18751756 + r18751749;
        double r18751758 = -0.5;
        double r18751759 = a;
        double r18751760 = r18751758 / r18751759;
        double r18751761 = r18751757 * r18751760;
        double r18751762 = cbrt(r18751761);
        double r18751763 = -r18751749;
        double r18751764 = r18751763 - r18751749;
        double r18751765 = cbrt(r18751764);
        double r18751766 = 2.0;
        double r18751767 = r18751766 * r18751759;
        double r18751768 = cbrt(r18751767);
        double r18751769 = r18751765 / r18751768;
        double r18751770 = r18751762 + r18751769;
        double r18751771 = r18751749 - r18751749;
        double r18751772 = cbrt(r18751771);
        double r18751773 = r18751772 / r18751768;
        double r18751774 = r18751758 * r18751757;
        double r18751775 = cbrt(r18751774);
        double r18751776 = cbrt(r18751759);
        double r18751777 = r18751775 / r18751776;
        double r18751778 = r18751773 + r18751777;
        double r18751779 = r18751751 ? r18751770 : r18751778;
        return r18751779;
}

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 < 4.0607805810600363e-188

    1. Initial program 35.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. Simplified35.5

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

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

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

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

    if 4.0607805810600363e-188 < g

    1. Initial program 34.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. Simplified34.3

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019121 +o rules:numerics
(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))))))))