Average Error: 35.4 → 31.2
Time: 28.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 5.209462070880178 \cdot 10^{-156}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)} + \sqrt[3]{\frac{\left(-g\right) - g}{2}} \cdot \sqrt[3]{\frac{1}{a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + g\right) \cdot \frac{-1}{2}}}{\sqrt[3]{a}} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{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 5.209462070880178 \cdot 10^{-156}:\\
\;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a} \cdot \left(\sqrt{g \cdot g - h \cdot h} + g\right)} + \sqrt[3]{\frac{\left(-g\right) - g}{2}} \cdot \sqrt[3]{\frac{1}{a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r4627624 = 1.0;
        double r4627625 = 2.0;
        double r4627626 = a;
        double r4627627 = r4627625 * r4627626;
        double r4627628 = r4627624 / r4627627;
        double r4627629 = g;
        double r4627630 = -r4627629;
        double r4627631 = r4627629 * r4627629;
        double r4627632 = h;
        double r4627633 = r4627632 * r4627632;
        double r4627634 = r4627631 - r4627633;
        double r4627635 = sqrt(r4627634);
        double r4627636 = r4627630 + r4627635;
        double r4627637 = r4627628 * r4627636;
        double r4627638 = cbrt(r4627637);
        double r4627639 = r4627630 - r4627635;
        double r4627640 = r4627628 * r4627639;
        double r4627641 = cbrt(r4627640);
        double r4627642 = r4627638 + r4627641;
        return r4627642;
}

double f(double g, double h, double a) {
        double r4627643 = g;
        double r4627644 = 5.209462070880178e-156;
        bool r4627645 = r4627643 <= r4627644;
        double r4627646 = -0.5;
        double r4627647 = a;
        double r4627648 = r4627646 / r4627647;
        double r4627649 = r4627643 * r4627643;
        double r4627650 = h;
        double r4627651 = r4627650 * r4627650;
        double r4627652 = r4627649 - r4627651;
        double r4627653 = sqrt(r4627652);
        double r4627654 = r4627653 + r4627643;
        double r4627655 = r4627648 * r4627654;
        double r4627656 = cbrt(r4627655);
        double r4627657 = -r4627643;
        double r4627658 = r4627657 - r4627643;
        double r4627659 = 2.0;
        double r4627660 = r4627658 / r4627659;
        double r4627661 = cbrt(r4627660);
        double r4627662 = 1.0;
        double r4627663 = r4627662 / r4627647;
        double r4627664 = cbrt(r4627663);
        double r4627665 = r4627661 * r4627664;
        double r4627666 = r4627656 + r4627665;
        double r4627667 = r4627654 * r4627646;
        double r4627668 = cbrt(r4627667);
        double r4627669 = cbrt(r4627647);
        double r4627670 = r4627668 / r4627669;
        double r4627671 = r4627653 - r4627643;
        double r4627672 = r4627647 * r4627659;
        double r4627673 = r4627671 / r4627672;
        double r4627674 = cbrt(r4627673);
        double r4627675 = r4627670 + r4627674;
        double r4627676 = r4627645 ? r4627666 : r4627675;
        return r4627676;
}

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 < 5.209462070880178e-156

    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. Simplified36.0

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

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

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

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

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

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

    if 5.209462070880178e-156 < g

    1. Initial program 34.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. Simplified34.7

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

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

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

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

Reproduce

herbie shell --seed 2019149 
(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))))))))