Average Error: 36.2 → 31.8
Time: 8.6s
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 -4.0637197773556724 \cdot 10^{-160}:\\ \;\;\;\;\frac{\sqrt[3]{1 \cdot \left(\left(-g\right) + \left|\sqrt[3]{g \cdot g - h \cdot h}\right| \cdot \sqrt{\sqrt[3]{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)}\\ \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 -4.0637197773556724 \cdot 10^{-160}:\\
\;\;\;\;\frac{\sqrt[3]{1 \cdot \left(\left(-g\right) + \left|\sqrt[3]{g \cdot g - h \cdot h}\right| \cdot \sqrt{\sqrt[3]{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)}\\

\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 r174563 = 1.0;
        double r174564 = 2.0;
        double r174565 = a;
        double r174566 = r174564 * r174565;
        double r174567 = r174563 / r174566;
        double r174568 = g;
        double r174569 = -r174568;
        double r174570 = r174568 * r174568;
        double r174571 = h;
        double r174572 = r174571 * r174571;
        double r174573 = r174570 - r174572;
        double r174574 = sqrt(r174573);
        double r174575 = r174569 + r174574;
        double r174576 = r174567 * r174575;
        double r174577 = cbrt(r174576);
        double r174578 = r174569 - r174574;
        double r174579 = r174567 * r174578;
        double r174580 = cbrt(r174579);
        double r174581 = r174577 + r174580;
        return r174581;
}

double f(double g, double h, double a) {
        double r174582 = g;
        double r174583 = -4.0637197773556724e-160;
        bool r174584 = r174582 <= r174583;
        double r174585 = 1.0;
        double r174586 = -r174582;
        double r174587 = r174582 * r174582;
        double r174588 = h;
        double r174589 = r174588 * r174588;
        double r174590 = r174587 - r174589;
        double r174591 = cbrt(r174590);
        double r174592 = fabs(r174591);
        double r174593 = sqrt(r174591);
        double r174594 = r174592 * r174593;
        double r174595 = r174586 + r174594;
        double r174596 = r174585 * r174595;
        double r174597 = cbrt(r174596);
        double r174598 = 2.0;
        double r174599 = a;
        double r174600 = r174598 * r174599;
        double r174601 = cbrt(r174600);
        double r174602 = r174597 / r174601;
        double r174603 = r174585 / r174600;
        double r174604 = sqrt(r174590);
        double r174605 = r174586 - r174604;
        double r174606 = r174603 * r174605;
        double r174607 = cbrt(r174606);
        double r174608 = r174602 + r174607;
        double r174609 = r174586 + r174604;
        double r174610 = r174603 * r174609;
        double r174611 = cbrt(r174610);
        double r174612 = cbrt(r174603);
        double r174613 = r174586 - r174582;
        double r174614 = cbrt(r174613);
        double r174615 = r174612 * r174614;
        double r174616 = r174611 + r174615;
        double r174617 = r174584 ? r174608 : r174616;
        return r174617;
}

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 < -4.0637197773556724e-160

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

      \[\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. Using strategy rm
    6. Applied add-cube-cbrt31.5

      \[\leadsto \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) + \sqrt{\color{blue}{\left(\sqrt[3]{g \cdot g - h \cdot h} \cdot \sqrt[3]{g \cdot g - h \cdot h}\right) \cdot \sqrt[3]{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)}\]
    7. Applied sqrt-prod31.5

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

      \[\leadsto \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) + \color{blue}{\left|\sqrt[3]{g \cdot g - h \cdot h}\right|} \cdot \sqrt{\sqrt[3]{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)}\]

    if -4.0637197773556724e-160 < g

    1. Initial program 37.2

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

      \[\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 32.2

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

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