Average Error: 36.2 → 31.8
Time: 26.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 2.776832660171497124288324412416908546106 \cdot 10^{-160}:\\ \;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{2 \cdot a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{\frac{1}{a}}{2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(-1\right) \cdot \left(g + \sqrt{\left(g - h\right) \cdot \left(h + g\right)}\right)}}{\sqrt[3]{2 \cdot a}} + \sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + \left(-g\right)\right) \cdot \frac{1}{2 \cdot 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 2.776832660171497124288324412416908546106 \cdot 10^{-160}:\\
\;\;\;\;\sqrt[3]{\left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{1}{2 \cdot a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{\frac{1}{a}}{2}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r112576 = 1.0;
        double r112577 = 2.0;
        double r112578 = a;
        double r112579 = r112577 * r112578;
        double r112580 = r112576 / r112579;
        double r112581 = g;
        double r112582 = -r112581;
        double r112583 = r112581 * r112581;
        double r112584 = h;
        double r112585 = r112584 * r112584;
        double r112586 = r112583 - r112585;
        double r112587 = sqrt(r112586);
        double r112588 = r112582 + r112587;
        double r112589 = r112580 * r112588;
        double r112590 = cbrt(r112589);
        double r112591 = r112582 - r112587;
        double r112592 = r112580 * r112591;
        double r112593 = cbrt(r112592);
        double r112594 = r112590 + r112593;
        return r112594;
}

double f(double g, double h, double a) {
        double r112595 = g;
        double r112596 = 2.776832660171497e-160;
        bool r112597 = r112595 <= r112596;
        double r112598 = -r112595;
        double r112599 = r112595 * r112595;
        double r112600 = h;
        double r112601 = r112600 * r112600;
        double r112602 = r112599 - r112601;
        double r112603 = sqrt(r112602);
        double r112604 = r112598 - r112603;
        double r112605 = 1.0;
        double r112606 = 2.0;
        double r112607 = a;
        double r112608 = r112606 * r112607;
        double r112609 = r112605 / r112608;
        double r112610 = r112604 * r112609;
        double r112611 = cbrt(r112610);
        double r112612 = r112598 - r112595;
        double r112613 = cbrt(r112612);
        double r112614 = r112605 / r112607;
        double r112615 = r112614 / r112606;
        double r112616 = cbrt(r112615);
        double r112617 = r112613 * r112616;
        double r112618 = r112611 + r112617;
        double r112619 = -r112605;
        double r112620 = r112595 - r112600;
        double r112621 = r112600 + r112595;
        double r112622 = r112620 * r112621;
        double r112623 = sqrt(r112622);
        double r112624 = r112595 + r112623;
        double r112625 = r112619 * r112624;
        double r112626 = cbrt(r112625);
        double r112627 = cbrt(r112608);
        double r112628 = r112626 / r112627;
        double r112629 = r112603 + r112598;
        double r112630 = r112629 * r112609;
        double r112631 = cbrt(r112630);
        double r112632 = r112628 + r112631;
        double r112633 = r112597 ? r112618 : r112632;
        return r112633;
}

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 < 2.776832660171497e-160

    1. Initial program 36.7

      \[\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 cbrt-prod32.9

      \[\leadsto \color{blue}{\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \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)}\]
    4. Simplified32.9

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\frac{1}{a}}{2}}} \cdot \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)}\]
    5. Simplified32.9

      \[\leadsto \sqrt[3]{\frac{\frac{1}{a}}{2}} \cdot \color{blue}{\sqrt[3]{\sqrt{\left(g - h\right) \cdot \left(g + h\right)} - g}} + \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.9

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

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

    if 2.776832660171497e-160 < 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. Using strategy rm
    3. Applied associate-*l/35.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-div31.6

      \[\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. Simplified31.6

      \[\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 + \sqrt{\left(g - h\right) \cdot \left(g + h\right)}\right) \cdot 1}}}{\sqrt[3]{2 \cdot a}}\]
    6. Simplified31.6

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

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

Reproduce

herbie shell --seed 2019195 
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  (+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))