Average Error: 36.2 → 31.6
Time: 36.7s
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 -3.421984391530689600469067551996753796002 \cdot 10^{-165}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{h \cdot h}{\frac{2 \cdot a}{1}}}}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\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 \sqrt[3]{\left(-g\right) - g}\\ \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 -3.421984391530689600469067551996753796002 \cdot 10^{-165}:\\
\;\;\;\;\frac{\sqrt[3]{\frac{h \cdot h}{\frac{2 \cdot a}{1}}}}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}}\\

\mathbf{else}:\\
\;\;\;\;\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 \sqrt[3]{\left(-g\right) - g}\\

\end{array}
double f(double g, double h, double a) {
        double r143663 = 1.0;
        double r143664 = 2.0;
        double r143665 = a;
        double r143666 = r143664 * r143665;
        double r143667 = r143663 / r143666;
        double r143668 = g;
        double r143669 = -r143668;
        double r143670 = r143668 * r143668;
        double r143671 = h;
        double r143672 = r143671 * r143671;
        double r143673 = r143670 - r143672;
        double r143674 = sqrt(r143673);
        double r143675 = r143669 + r143674;
        double r143676 = r143667 * r143675;
        double r143677 = cbrt(r143676);
        double r143678 = r143669 - r143674;
        double r143679 = r143667 * r143678;
        double r143680 = cbrt(r143679);
        double r143681 = r143677 + r143680;
        return r143681;
}

double f(double g, double h, double a) {
        double r143682 = g;
        double r143683 = -3.4219843915306896e-165;
        bool r143684 = r143682 <= r143683;
        double r143685 = h;
        double r143686 = r143685 * r143685;
        double r143687 = 2.0;
        double r143688 = a;
        double r143689 = r143687 * r143688;
        double r143690 = 1.0;
        double r143691 = r143689 / r143690;
        double r143692 = r143686 / r143691;
        double r143693 = cbrt(r143692);
        double r143694 = r143682 * r143682;
        double r143695 = r143694 - r143686;
        double r143696 = sqrt(r143695);
        double r143697 = r143696 - r143682;
        double r143698 = cbrt(r143697);
        double r143699 = r143693 / r143698;
        double r143700 = r143690 * r143697;
        double r143701 = cbrt(r143700);
        double r143702 = cbrt(r143689);
        double r143703 = r143701 / r143702;
        double r143704 = r143699 + r143703;
        double r143705 = r143690 / r143689;
        double r143706 = -r143682;
        double r143707 = r143706 + r143696;
        double r143708 = r143705 * r143707;
        double r143709 = cbrt(r143708);
        double r143710 = cbrt(r143705);
        double r143711 = r143706 - r143682;
        double r143712 = cbrt(r143711);
        double r143713 = r143710 * r143712;
        double r143714 = r143709 + r143713;
        double r143715 = r143684 ? r143704 : r143714;
        return r143715;
}

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 < -3.4219843915306896e-165

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

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

      \[\leadsto \frac{\color{blue}{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\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)}\]
    6. Using strategy rm
    7. Applied flip--31.3

      \[\leadsto \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}} + \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}}}}\]
    8. Applied associate-*r/31.4

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

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

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

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

    if -3.4219843915306896e-165 < g

    1. Initial program 36.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. Using strategy rm
    3. Applied cbrt-prod33.0

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

      \[\leadsto \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 \sqrt[3]{\left(-g\right) - \color{blue}{g}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;g \le -3.421984391530689600469067551996753796002 \cdot 10^{-165}:\\ \;\;\;\;\frac{\sqrt[3]{\frac{h \cdot h}{\frac{2 \cdot a}{1}}}}{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}} + \frac{\sqrt[3]{1 \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\right)}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\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 \sqrt[3]{\left(-g\right) - g}\\ \end{array}\]

Reproduce

herbie shell --seed 2019325 
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  :precision binary64
  (+ (cbrt (* (/ 1 (* 2 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1 (* 2 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))