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

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

\end{array}
double f(double g, double h, double a) {
        double r5620188 = 1.0;
        double r5620189 = 2.0;
        double r5620190 = a;
        double r5620191 = r5620189 * r5620190;
        double r5620192 = r5620188 / r5620191;
        double r5620193 = g;
        double r5620194 = -r5620193;
        double r5620195 = r5620193 * r5620193;
        double r5620196 = h;
        double r5620197 = r5620196 * r5620196;
        double r5620198 = r5620195 - r5620197;
        double r5620199 = sqrt(r5620198);
        double r5620200 = r5620194 + r5620199;
        double r5620201 = r5620192 * r5620200;
        double r5620202 = cbrt(r5620201);
        double r5620203 = r5620194 - r5620199;
        double r5620204 = r5620192 * r5620203;
        double r5620205 = cbrt(r5620204);
        double r5620206 = r5620202 + r5620205;
        return r5620206;
}

double f(double g, double h, double a) {
        double r5620207 = g;
        double r5620208 = -3.035091110489776e-158;
        bool r5620209 = r5620207 <= r5620208;
        double r5620210 = h;
        double r5620211 = r5620207 + r5620210;
        double r5620212 = r5620207 - r5620210;
        double r5620213 = r5620211 * r5620212;
        double r5620214 = sqrt(r5620213);
        double r5620215 = r5620214 - r5620207;
        double r5620216 = cbrt(r5620215);
        double r5620217 = 0.5;
        double r5620218 = a;
        double r5620219 = r5620217 / r5620218;
        double r5620220 = cbrt(r5620219);
        double r5620221 = r5620216 * r5620220;
        double r5620222 = -0.5;
        double r5620223 = r5620222 / r5620218;
        double r5620224 = r5620207 + r5620214;
        double r5620225 = r5620223 * r5620224;
        double r5620226 = cbrt(r5620225);
        double r5620227 = r5620221 + r5620226;
        double r5620228 = r5620207 + r5620207;
        double r5620229 = r5620228 * r5620222;
        double r5620230 = cbrt(r5620229);
        double r5620231 = cbrt(r5620218);
        double r5620232 = r5620230 / r5620231;
        double r5620233 = r5620215 * r5620219;
        double r5620234 = cbrt(r5620233);
        double r5620235 = r5620232 + r5620234;
        double r5620236 = r5620209 ? r5620227 : r5620235;
        return r5620236;
}

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.035091110489776e-158

    1. Initial program 33.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. Simplified33.7

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

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

    if -3.035091110489776e-158 < g

    1. Initial program 36.8

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

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

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

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

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

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

Reproduce

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