Average Error: 35.3 → 30.8
Time: 29.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 -6.3921017940024375 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\frac{g \cdot g - \left(g - h\right) \cdot \left(h + g\right)}{g - \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}} + \frac{\sqrt[3]{\frac{1}{2} \cdot \left(\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g\right)}}{\sqrt[3]{a}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g}{a} \cdot \frac{1}{2}} + \sqrt[3]{g + g} \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 -6.3921017940024375 \cdot 10^{-161}:\\
\;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{\frac{g \cdot g - \left(g - h\right) \cdot \left(h + g\right)}{g - \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}} + \frac{\sqrt[3]{\frac{1}{2} \cdot \left(\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g\right)}}{\sqrt[3]{a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r5012537 = 1.0;
        double r5012538 = 2.0;
        double r5012539 = a;
        double r5012540 = r5012538 * r5012539;
        double r5012541 = r5012537 / r5012540;
        double r5012542 = g;
        double r5012543 = -r5012542;
        double r5012544 = r5012542 * r5012542;
        double r5012545 = h;
        double r5012546 = r5012545 * r5012545;
        double r5012547 = r5012544 - r5012546;
        double r5012548 = sqrt(r5012547);
        double r5012549 = r5012543 + r5012548;
        double r5012550 = r5012541 * r5012549;
        double r5012551 = cbrt(r5012550);
        double r5012552 = r5012543 - r5012548;
        double r5012553 = r5012541 * r5012552;
        double r5012554 = cbrt(r5012553);
        double r5012555 = r5012551 + r5012554;
        return r5012555;
}

double f(double g, double h, double a) {
        double r5012556 = g;
        double r5012557 = -6.3921017940024375e-161;
        bool r5012558 = r5012556 <= r5012557;
        double r5012559 = -0.5;
        double r5012560 = a;
        double r5012561 = r5012559 / r5012560;
        double r5012562 = cbrt(r5012561);
        double r5012563 = r5012556 * r5012556;
        double r5012564 = h;
        double r5012565 = r5012556 - r5012564;
        double r5012566 = r5012564 + r5012556;
        double r5012567 = r5012565 * r5012566;
        double r5012568 = r5012563 - r5012567;
        double r5012569 = sqrt(r5012567);
        double r5012570 = r5012556 - r5012569;
        double r5012571 = r5012568 / r5012570;
        double r5012572 = cbrt(r5012571);
        double r5012573 = r5012562 * r5012572;
        double r5012574 = 0.5;
        double r5012575 = r5012569 - r5012556;
        double r5012576 = r5012574 * r5012575;
        double r5012577 = cbrt(r5012576);
        double r5012578 = cbrt(r5012560);
        double r5012579 = r5012577 / r5012578;
        double r5012580 = r5012573 + r5012579;
        double r5012581 = r5012575 / r5012560;
        double r5012582 = r5012581 * r5012574;
        double r5012583 = cbrt(r5012582);
        double r5012584 = r5012556 + r5012556;
        double r5012585 = cbrt(r5012584);
        double r5012586 = r5012585 * r5012562;
        double r5012587 = r5012583 + r5012586;
        double r5012588 = r5012558 ? r5012580 : r5012587;
        return r5012588;
}

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 < -6.3921017940024375e-161

    1. Initial program 34.4

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

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

      \[\leadsto \sqrt[3]{\frac{\sqrt{\left(g - h\right) \cdot \left(h + g\right)} - g}{a} \cdot \frac{1}{2}} + \color{blue}{\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{g + \sqrt{\left(g - h\right) \cdot \left(h + g\right)}}}\]
    5. Using strategy rm
    6. Applied associate-*l/34.3

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

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

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

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

    if -6.3921017940024375e-161 < g

    1. Initial program 36.2

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

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

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

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

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

Reproduce

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