Average Error: 35.2 → 31.5
Time: 40.0s
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.2849414813215076 \cdot 10^{-182}:\\ \;\;\;\;\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(\left(-g\right) + g\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + g\right)}}{\sqrt[3]{a}} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}}\\ \end{array}\]
double f(double g, double h, double a) {
        double r24719845 = 1.0;
        double r24719846 = 2.0;
        double r24719847 = a;
        double r24719848 = r24719846 * r24719847;
        double r24719849 = r24719845 / r24719848;
        double r24719850 = g;
        double r24719851 = -r24719850;
        double r24719852 = r24719850 * r24719850;
        double r24719853 = h;
        double r24719854 = r24719853 * r24719853;
        double r24719855 = r24719852 - r24719854;
        double r24719856 = sqrt(r24719855);
        double r24719857 = r24719851 + r24719856;
        double r24719858 = r24719849 * r24719857;
        double r24719859 = cbrt(r24719858);
        double r24719860 = r24719851 - r24719856;
        double r24719861 = r24719849 * r24719860;
        double r24719862 = cbrt(r24719861);
        double r24719863 = r24719859 + r24719862;
        return r24719863;
}

double f(double g, double h, double a) {
        double r24719864 = g;
        double r24719865 = -3.2849414813215076e-182;
        bool r24719866 = r24719864 <= r24719865;
        double r24719867 = r24719864 * r24719864;
        double r24719868 = h;
        double r24719869 = r24719868 * r24719868;
        double r24719870 = r24719867 - r24719869;
        double r24719871 = sqrt(r24719870);
        double r24719872 = r24719871 - r24719864;
        double r24719873 = cbrt(r24719872);
        double r24719874 = a;
        double r24719875 = 2.0;
        double r24719876 = r24719874 * r24719875;
        double r24719877 = cbrt(r24719876);
        double r24719878 = r24719873 / r24719877;
        double r24719879 = -0.5;
        double r24719880 = r24719879 / r24719874;
        double r24719881 = -r24719864;
        double r24719882 = r24719881 + r24719864;
        double r24719883 = r24719880 * r24719882;
        double r24719884 = cbrt(r24719883);
        double r24719885 = r24719878 + r24719884;
        double r24719886 = r24719864 + r24719864;
        double r24719887 = r24719879 * r24719886;
        double r24719888 = cbrt(r24719887);
        double r24719889 = cbrt(r24719874);
        double r24719890 = r24719888 / r24719889;
        double r24719891 = r24719872 / r24719876;
        double r24719892 = cbrt(r24719891);
        double r24719893 = r24719890 + r24719892;
        double r24719894 = r24719866 ? r24719885 : r24719893;
        return r24719894;
}

\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.2849414813215076 \cdot 10^{-182}:\\
\;\;\;\;\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(\left(-g\right) + g\right)}\\

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

\end{array}

Error

Bits error versus g

Bits error versus h

Bits error versus a

Derivation

  1. Split input into 2 regimes
  2. if g < -3.2849414813215076e-182

    1. Initial program 35.0

      \[\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.0

      \[\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-div31.8

      \[\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.5

      \[\leadsto \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 + \color{blue}{-1 \cdot g}\right)}\]
    6. Simplified31.5

      \[\leadsto \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 + \color{blue}{\left(-g\right)}\right)}\]

    if -3.2849414813215076e-182 < g

    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 associate-*l/35.5

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

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{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}}}\]
    6. Taylor expanded around inf 31.5

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

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

Reproduce

herbie shell --seed 2019101 +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))))))))