Average Error: 35.2 → 31.4
Time: 1.3m
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.561626692058613 \cdot 10^{-162}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \frac{\sqrt[3]{\frac{h \cdot h}{\frac{a}{\frac{-1}{2}}}}}{\sqrt[3]{g - \sqrt{g \cdot g - h \cdot h}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{g - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}} \cdot \sqrt[3]{\frac{\frac{-1}{2}}{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 -1.561626692058613 \cdot 10^{-162}:\\
\;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \frac{\sqrt[3]{\frac{h \cdot h}{\frac{a}{\frac{-1}{2}}}}}{\sqrt[3]{g - \sqrt{g \cdot g - h \cdot h}}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r26020364 = 1.0;
        double r26020365 = 2.0;
        double r26020366 = a;
        double r26020367 = r26020365 * r26020366;
        double r26020368 = r26020364 / r26020367;
        double r26020369 = g;
        double r26020370 = -r26020369;
        double r26020371 = r26020369 * r26020369;
        double r26020372 = h;
        double r26020373 = r26020372 * r26020372;
        double r26020374 = r26020371 - r26020373;
        double r26020375 = sqrt(r26020374);
        double r26020376 = r26020370 + r26020375;
        double r26020377 = r26020368 * r26020376;
        double r26020378 = cbrt(r26020377);
        double r26020379 = r26020370 - r26020375;
        double r26020380 = r26020368 * r26020379;
        double r26020381 = cbrt(r26020380);
        double r26020382 = r26020378 + r26020381;
        return r26020382;
}

double f(double g, double h, double a) {
        double r26020383 = g;
        double r26020384 = -1.561626692058613e-162;
        bool r26020385 = r26020383 <= r26020384;
        double r26020386 = r26020383 * r26020383;
        double r26020387 = h;
        double r26020388 = r26020387 * r26020387;
        double r26020389 = r26020386 - r26020388;
        double r26020390 = sqrt(r26020389);
        double r26020391 = r26020390 - r26020383;
        double r26020392 = 2.0;
        double r26020393 = r26020391 / r26020392;
        double r26020394 = cbrt(r26020393);
        double r26020395 = 1.0;
        double r26020396 = a;
        double r26020397 = r26020395 / r26020396;
        double r26020398 = cbrt(r26020397);
        double r26020399 = r26020394 * r26020398;
        double r26020400 = -0.5;
        double r26020401 = r26020396 / r26020400;
        double r26020402 = r26020388 / r26020401;
        double r26020403 = cbrt(r26020402);
        double r26020404 = r26020383 - r26020390;
        double r26020405 = cbrt(r26020404);
        double r26020406 = r26020403 / r26020405;
        double r26020407 = r26020399 + r26020406;
        double r26020408 = r26020383 - r26020383;
        double r26020409 = r26020408 / r26020392;
        double r26020410 = cbrt(r26020409);
        double r26020411 = r26020410 * r26020398;
        double r26020412 = r26020383 + r26020390;
        double r26020413 = cbrt(r26020412);
        double r26020414 = r26020400 / r26020396;
        double r26020415 = cbrt(r26020414);
        double r26020416 = r26020413 * r26020415;
        double r26020417 = r26020411 + r26020416;
        double r26020418 = r26020385 ? r26020407 : r26020417;
        return r26020418;
}

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 < -1.561626692058613e-162

    1. Initial program 33.9

      \[\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.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 *-un-lft-identity34.0

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

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

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

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

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

      \[\leadsto \sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} + \sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \color{blue}{\frac{g \cdot g - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}}{g - \sqrt{g \cdot g - h \cdot h}}}}\]
    11. Applied associate-*r/30.3

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

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

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

    if -1.561626692058613e-162 < g

    1. Initial program 36.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. Simplified36.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 *-un-lft-identity36.3

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

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

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

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

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

      \[\leadsto \sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} + \color{blue}{\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}}}\]
    11. Taylor expanded around inf 32.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le -1.561626692058613 \cdot 10^{-162}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \frac{\sqrt[3]{\frac{h \cdot h}{\frac{a}{\frac{-1}{2}}}}}{\sqrt[3]{g - \sqrt{g \cdot g - h \cdot h}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{g - g}{2}} \cdot \sqrt[3]{\frac{1}{a}} + \sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}} \cdot \sqrt[3]{\frac{\frac{-1}{2}}{a}}\\ \end{array}\]

Reproduce

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