Average Error: 35.2 → 31.5
Time: 40.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 -1.5642964097194712 \cdot 10^{-162}:\\ \;\;\;\;\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\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)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\left(\left(-g\right) + g\right) \cdot \frac{1}{2 \cdot a}} + \frac{\sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}{\sqrt[3]{2 \cdot a}}\\ \end{array}\]
double f(double g, double h, double a) {
        double r18105408 = 1.0;
        double r18105409 = 2.0;
        double r18105410 = a;
        double r18105411 = r18105409 * r18105410;
        double r18105412 = r18105408 / r18105411;
        double r18105413 = g;
        double r18105414 = -r18105413;
        double r18105415 = r18105413 * r18105413;
        double r18105416 = h;
        double r18105417 = r18105416 * r18105416;
        double r18105418 = r18105415 - r18105417;
        double r18105419 = sqrt(r18105418);
        double r18105420 = r18105414 + r18105419;
        double r18105421 = r18105412 * r18105420;
        double r18105422 = cbrt(r18105421);
        double r18105423 = r18105414 - r18105419;
        double r18105424 = r18105412 * r18105423;
        double r18105425 = cbrt(r18105424);
        double r18105426 = r18105422 + r18105425;
        return r18105426;
}

double f(double g, double h, double a) {
        double r18105427 = g;
        double r18105428 = -1.5642964097194712e-162;
        bool r18105429 = r18105427 <= r18105428;
        double r18105430 = r18105427 * r18105427;
        double r18105431 = h;
        double r18105432 = r18105431 * r18105431;
        double r18105433 = r18105430 - r18105432;
        double r18105434 = sqrt(r18105433);
        double r18105435 = r18105434 - r18105427;
        double r18105436 = cbrt(r18105435);
        double r18105437 = 2.0;
        double r18105438 = a;
        double r18105439 = r18105437 * r18105438;
        double r18105440 = cbrt(r18105439);
        double r18105441 = r18105436 / r18105440;
        double r18105442 = 1.0;
        double r18105443 = r18105442 / r18105439;
        double r18105444 = -r18105427;
        double r18105445 = r18105444 - r18105434;
        double r18105446 = r18105443 * r18105445;
        double r18105447 = cbrt(r18105446);
        double r18105448 = r18105441 + r18105447;
        double r18105449 = r18105444 + r18105427;
        double r18105450 = r18105449 * r18105443;
        double r18105451 = cbrt(r18105450);
        double r18105452 = cbrt(r18105445);
        double r18105453 = r18105452 / r18105440;
        double r18105454 = r18105451 + r18105453;
        double r18105455 = r18105429 ? r18105448 : r18105454;
        return r18105455;
}

\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 -1.5642964097194712 \cdot 10^{-162}:\\
\;\;\;\;\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\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)}\\

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

\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 < -1.5642964097194712e-162

    1. Initial program 33.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 associate-*l/33.6

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

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

      \[\leadsto \frac{\color{blue}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}}{\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)}\]

    if -1.5642964097194712e-162 < g

    1. Initial program 36.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 associate-*l/36.6

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

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

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

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

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

Reproduce

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