Average Error: 35.8 → 31.7
Time: 27.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 -1.0197648282366805 \cdot 10^{-191}:\\ \;\;\;\;\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{\left(-g\right) - \left(-g\right)}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(-g\right) - g}}{\sqrt[3]{2 \cdot a}} + \sqrt[3]{\left(\sqrt{g \cdot g - h \cdot h} + \left(-g\right)\right) \cdot \frac{1}{2 \cdot 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 -1.0197648282366805 \cdot 10^{-191}:\\
\;\;\;\;\frac{\sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g}}{\sqrt[3]{2 \cdot a}} + \frac{\sqrt[3]{\left(-g\right) - \left(-g\right)}}{\sqrt[3]{2 \cdot a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r5460437 = 1.0;
        double r5460438 = 2.0;
        double r5460439 = a;
        double r5460440 = r5460438 * r5460439;
        double r5460441 = r5460437 / r5460440;
        double r5460442 = g;
        double r5460443 = -r5460442;
        double r5460444 = r5460442 * r5460442;
        double r5460445 = h;
        double r5460446 = r5460445 * r5460445;
        double r5460447 = r5460444 - r5460446;
        double r5460448 = sqrt(r5460447);
        double r5460449 = r5460443 + r5460448;
        double r5460450 = r5460441 * r5460449;
        double r5460451 = cbrt(r5460450);
        double r5460452 = r5460443 - r5460448;
        double r5460453 = r5460441 * r5460452;
        double r5460454 = cbrt(r5460453);
        double r5460455 = r5460451 + r5460454;
        return r5460455;
}

double f(double g, double h, double a) {
        double r5460456 = g;
        double r5460457 = -1.0197648282366805e-191;
        bool r5460458 = r5460456 <= r5460457;
        double r5460459 = r5460456 * r5460456;
        double r5460460 = h;
        double r5460461 = r5460460 * r5460460;
        double r5460462 = r5460459 - r5460461;
        double r5460463 = sqrt(r5460462);
        double r5460464 = r5460463 - r5460456;
        double r5460465 = cbrt(r5460464);
        double r5460466 = 2.0;
        double r5460467 = a;
        double r5460468 = r5460466 * r5460467;
        double r5460469 = cbrt(r5460468);
        double r5460470 = r5460465 / r5460469;
        double r5460471 = -r5460456;
        double r5460472 = r5460471 - r5460471;
        double r5460473 = cbrt(r5460472);
        double r5460474 = r5460473 / r5460469;
        double r5460475 = r5460470 + r5460474;
        double r5460476 = r5460471 - r5460456;
        double r5460477 = cbrt(r5460476);
        double r5460478 = r5460477 / r5460469;
        double r5460479 = r5460463 + r5460471;
        double r5460480 = 1.0;
        double r5460481 = r5460480 / r5460468;
        double r5460482 = r5460479 * r5460481;
        double r5460483 = cbrt(r5460482);
        double r5460484 = r5460478 + r5460483;
        double r5460485 = r5460458 ? r5460475 : r5460484;
        return r5460485;
}

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 < -1.0197648282366805e-191

    1. Initial program 34.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 associate-*l/34.9

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

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

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

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

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

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

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

    if -1.0197648282366805e-191 < 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. Using strategy rm
    3. Applied associate-*l/36.8

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

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

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

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

Reproduce

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