Average Error: 35.1 → 31.7
Time: 53.8s
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 2.4942114245170744 \cdot 10^{-192}:\\ \;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{a \cdot 2}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{a \cdot 2}}\\ \mathbf{elif}\;g \le 3.905389537008428 \cdot 10^{+37}:\\ \;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{a \cdot 2}} + \frac{\sqrt[3]{\frac{h \cdot h}{a \cdot 2}}}{\sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}{\sqrt[3]{a \cdot 2}} + \sqrt[3]{\left(\left(-g\right) + \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{a \cdot 2}}\\ \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 2.4942114245170744 \cdot 10^{-192}:\\
\;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{a \cdot 2}} + \frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{a \cdot 2}}\\

\mathbf{elif}\;g \le 3.905389537008428 \cdot 10^{+37}:\\
\;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{a \cdot 2}} + \frac{\sqrt[3]{\frac{h \cdot h}{a \cdot 2}}}{\sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r16379425 = 1.0;
        double r16379426 = 2.0;
        double r16379427 = a;
        double r16379428 = r16379426 * r16379427;
        double r16379429 = r16379425 / r16379428;
        double r16379430 = g;
        double r16379431 = -r16379430;
        double r16379432 = r16379430 * r16379430;
        double r16379433 = h;
        double r16379434 = r16379433 * r16379433;
        double r16379435 = r16379432 - r16379434;
        double r16379436 = sqrt(r16379435);
        double r16379437 = r16379431 + r16379436;
        double r16379438 = r16379429 * r16379437;
        double r16379439 = cbrt(r16379438);
        double r16379440 = r16379431 - r16379436;
        double r16379441 = r16379429 * r16379440;
        double r16379442 = cbrt(r16379441);
        double r16379443 = r16379439 + r16379442;
        return r16379443;
}

double f(double g, double h, double a) {
        double r16379444 = g;
        double r16379445 = 2.4942114245170744e-192;
        bool r16379446 = r16379444 <= r16379445;
        double r16379447 = -r16379444;
        double r16379448 = r16379444 * r16379444;
        double r16379449 = h;
        double r16379450 = r16379449 * r16379449;
        double r16379451 = r16379448 - r16379450;
        double r16379452 = sqrt(r16379451);
        double r16379453 = r16379447 - r16379452;
        double r16379454 = 1.0;
        double r16379455 = a;
        double r16379456 = 2.0;
        double r16379457 = r16379455 * r16379456;
        double r16379458 = r16379454 / r16379457;
        double r16379459 = r16379453 * r16379458;
        double r16379460 = cbrt(r16379459);
        double r16379461 = r16379447 - r16379444;
        double r16379462 = cbrt(r16379461);
        double r16379463 = cbrt(r16379457);
        double r16379464 = r16379462 / r16379463;
        double r16379465 = r16379460 + r16379464;
        double r16379466 = 3.905389537008428e+37;
        bool r16379467 = r16379444 <= r16379466;
        double r16379468 = r16379450 / r16379457;
        double r16379469 = cbrt(r16379468);
        double r16379470 = cbrt(r16379453);
        double r16379471 = r16379469 / r16379470;
        double r16379472 = r16379460 + r16379471;
        double r16379473 = r16379470 / r16379463;
        double r16379474 = r16379447 + r16379452;
        double r16379475 = r16379474 * r16379458;
        double r16379476 = cbrt(r16379475);
        double r16379477 = r16379473 + r16379476;
        double r16379478 = r16379467 ? r16379472 : r16379477;
        double r16379479 = r16379446 ? r16379465 : r16379478;
        return r16379479;
}

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 < 2.4942114245170744e-192

    1. Initial program 36.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. Using strategy rm
    3. Applied associate-*l/36.0

      \[\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-div32.4

      \[\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. Simplified32.4

      \[\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)}\]
    6. Taylor expanded around -inf 31.7

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

      \[\leadsto \frac{\sqrt[3]{\color{blue}{\left(-g\right)} - 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 2.4942114245170744e-192 < g < 3.905389537008428e+37

    1. Initial program 11.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 flip-+11.1

      \[\leadsto \sqrt[3]{\frac{1}{2 \cdot a} \cdot \color{blue}{\frac{\left(-g\right) \cdot \left(-g\right) - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}}{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}} + \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}\]
    4. Applied associate-*r/11.1

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

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

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

    if 3.905389537008428e+37 < g

    1. Initial program 43.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. Using strategy rm
    3. Applied associate-*l/43.5

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

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

      \[\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}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification31.7

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

Reproduce

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