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

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

\end{array}
double f(double g, double h, double a) {
        double r5522264 = 1.0;
        double r5522265 = 2.0;
        double r5522266 = a;
        double r5522267 = r5522265 * r5522266;
        double r5522268 = r5522264 / r5522267;
        double r5522269 = g;
        double r5522270 = -r5522269;
        double r5522271 = r5522269 * r5522269;
        double r5522272 = h;
        double r5522273 = r5522272 * r5522272;
        double r5522274 = r5522271 - r5522273;
        double r5522275 = sqrt(r5522274);
        double r5522276 = r5522270 + r5522275;
        double r5522277 = r5522268 * r5522276;
        double r5522278 = cbrt(r5522277);
        double r5522279 = r5522270 - r5522275;
        double r5522280 = r5522268 * r5522279;
        double r5522281 = cbrt(r5522280);
        double r5522282 = r5522278 + r5522281;
        return r5522282;
}

double f(double g, double h, double a) {
        double r5522283 = g;
        double r5522284 = 6.382883611553767e-167;
        bool r5522285 = r5522283 <= r5522284;
        double r5522286 = h;
        double r5522287 = r5522286 + r5522283;
        double r5522288 = r5522283 - r5522286;
        double r5522289 = r5522287 * r5522288;
        double r5522290 = sqrt(r5522289);
        double r5522291 = r5522290 + r5522283;
        double r5522292 = -0.5;
        double r5522293 = a;
        double r5522294 = r5522292 / r5522293;
        double r5522295 = r5522291 * r5522294;
        double r5522296 = cbrt(r5522295);
        double r5522297 = 0.5;
        double r5522298 = -r5522283;
        double r5522299 = r5522298 - r5522283;
        double r5522300 = r5522297 * r5522299;
        double r5522301 = cbrt(r5522300);
        double r5522302 = cbrt(r5522293);
        double r5522303 = r5522301 / r5522302;
        double r5522304 = r5522296 + r5522303;
        double r5522305 = r5522290 - r5522283;
        double r5522306 = r5522297 / r5522293;
        double r5522307 = r5522305 * r5522306;
        double r5522308 = cbrt(r5522307);
        double r5522309 = r5522292 * r5522291;
        double r5522310 = cbrt(r5522309);
        double r5522311 = r5522310 / r5522302;
        double r5522312 = r5522308 + r5522311;
        double r5522313 = r5522285 ? r5522304 : r5522312;
        return r5522313;
}

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.382883611553767e-167

    1. Initial program 36.1

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

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

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

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

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

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

    if 6.382883611553767e-167 < g

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

      \[\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/34.3

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

      \[\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}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.2

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

Reproduce

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