Average Error: 36.0 → 31.3
Time: 30.5s
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 -6.278795137825635 \cdot 10^{-169}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(\left(-g\right) + g\right)}}{\sqrt[3]{a}}\\ \mathbf{elif}\;g \le 8.518209198794929 \cdot 10^{-155}:\\ \;\;\;\;\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}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} \cdot \sqrt[3]{\frac{\frac{1}{2}}{a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\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 -6.278795137825635 \cdot 10^{-169}:\\
\;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(\left(-g\right) + g\right)}}{\sqrt[3]{a}}\\

\mathbf{elif}\;g \le 8.518209198794929 \cdot 10^{-155}:\\
\;\;\;\;\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}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r4918410 = 1.0;
        double r4918411 = 2.0;
        double r4918412 = a;
        double r4918413 = r4918411 * r4918412;
        double r4918414 = r4918410 / r4918413;
        double r4918415 = g;
        double r4918416 = -r4918415;
        double r4918417 = r4918415 * r4918415;
        double r4918418 = h;
        double r4918419 = r4918418 * r4918418;
        double r4918420 = r4918417 - r4918419;
        double r4918421 = sqrt(r4918420);
        double r4918422 = r4918416 + r4918421;
        double r4918423 = r4918414 * r4918422;
        double r4918424 = cbrt(r4918423);
        double r4918425 = r4918416 - r4918421;
        double r4918426 = r4918414 * r4918425;
        double r4918427 = cbrt(r4918426);
        double r4918428 = r4918424 + r4918427;
        return r4918428;
}

double f(double g, double h, double a) {
        double r4918429 = g;
        double r4918430 = -6.278795137825635e-169;
        bool r4918431 = r4918429 <= r4918430;
        double r4918432 = r4918429 * r4918429;
        double r4918433 = h;
        double r4918434 = r4918433 * r4918433;
        double r4918435 = r4918432 - r4918434;
        double r4918436 = sqrt(r4918435);
        double r4918437 = r4918436 - r4918429;
        double r4918438 = 2.0;
        double r4918439 = r4918437 / r4918438;
        double r4918440 = cbrt(r4918439);
        double r4918441 = 1.0;
        double r4918442 = a;
        double r4918443 = r4918441 / r4918442;
        double r4918444 = cbrt(r4918443);
        double r4918445 = r4918440 * r4918444;
        double r4918446 = -0.5;
        double r4918447 = -r4918429;
        double r4918448 = r4918447 + r4918429;
        double r4918449 = r4918446 * r4918448;
        double r4918450 = cbrt(r4918449);
        double r4918451 = cbrt(r4918442);
        double r4918452 = r4918450 / r4918451;
        double r4918453 = r4918445 + r4918452;
        double r4918454 = 8.518209198794929e-155;
        bool r4918455 = r4918429 <= r4918454;
        double r4918456 = r4918429 + r4918429;
        double r4918457 = r4918446 * r4918456;
        double r4918458 = cbrt(r4918457);
        double r4918459 = r4918458 / r4918451;
        double r4918460 = r4918442 * r4918438;
        double r4918461 = r4918437 / r4918460;
        double r4918462 = cbrt(r4918461);
        double r4918463 = r4918459 + r4918462;
        double r4918464 = cbrt(r4918437);
        double r4918465 = 0.5;
        double r4918466 = r4918465 / r4918442;
        double r4918467 = cbrt(r4918466);
        double r4918468 = r4918464 * r4918467;
        double r4918469 = r4918429 + r4918436;
        double r4918470 = r4918446 * r4918469;
        double r4918471 = cbrt(r4918470);
        double r4918472 = r4918471 / r4918451;
        double r4918473 = r4918468 + r4918472;
        double r4918474 = r4918455 ? r4918463 : r4918473;
        double r4918475 = r4918431 ? r4918453 : r4918474;
        return r4918475;
}

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 3 regimes
  2. if g < -6.278795137825635e-169

    1. Initial program 35.1

      \[\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{-1}{2} \cdot \frac{g + \sqrt{g \cdot g - h \cdot h}}{a}}}\]
    3. Using strategy rm
    4. Applied associate-*r/35.0

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

      \[\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. Using strategy rm
    7. Applied *-un-lft-identity35.0

      \[\leadsto \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - \color{blue}{1 \cdot g}}{a \cdot 2}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{a}}\]
    8. Applied *-un-lft-identity35.0

      \[\leadsto \sqrt[3]{\frac{\color{blue}{1 \cdot \sqrt{g \cdot g - h \cdot h}} - 1 \cdot g}{a \cdot 2}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{a}}\]
    9. Applied distribute-lft-out--35.0

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

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

      \[\leadsto \color{blue}{\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}}} + \frac{\sqrt[3]{\frac{-1}{2} \cdot \left(g + \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{a}}\]
    12. Using strategy rm
    13. Applied fma-neg30.9

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

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

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

    if -6.278795137825635e-169 < g < 8.518209198794929e-155

    1. Initial program 54.1

      \[\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. Simplified54.1

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{\frac{-1}{2} \cdot \frac{g + \sqrt{g \cdot g - h \cdot h}}{a}}}\]
    3. Using strategy rm
    4. Applied associate-*r/54.1

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

      \[\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 37.8

      \[\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}}\]

    if 8.518209198794929e-155 < g

    1. Initial program 34.8

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

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{\frac{-1}{2} \cdot \frac{g + \sqrt{g \cdot g - h \cdot h}}{a}}}\]
    3. Using strategy rm
    4. Applied associate-*r/34.8

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

      \[\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. Using strategy rm
    7. Applied div-inv31.2

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

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

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

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

Reproduce

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