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

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

\end{array}
double f(double g, double h, double a) {
        double r4274013 = 1.0;
        double r4274014 = 2.0;
        double r4274015 = a;
        double r4274016 = r4274014 * r4274015;
        double r4274017 = r4274013 / r4274016;
        double r4274018 = g;
        double r4274019 = -r4274018;
        double r4274020 = r4274018 * r4274018;
        double r4274021 = h;
        double r4274022 = r4274021 * r4274021;
        double r4274023 = r4274020 - r4274022;
        double r4274024 = sqrt(r4274023);
        double r4274025 = r4274019 + r4274024;
        double r4274026 = r4274017 * r4274025;
        double r4274027 = cbrt(r4274026);
        double r4274028 = r4274019 - r4274024;
        double r4274029 = r4274017 * r4274028;
        double r4274030 = cbrt(r4274029);
        double r4274031 = r4274027 + r4274030;
        return r4274031;
}

double f(double g, double h, double a) {
        double r4274032 = g;
        double r4274033 = -1.6297615549700884e-171;
        bool r4274034 = r4274032 <= r4274033;
        double r4274035 = 0.5;
        double r4274036 = r4274032 * r4274032;
        double r4274037 = h;
        double r4274038 = r4274037 * r4274037;
        double r4274039 = r4274036 - r4274038;
        double r4274040 = sqrt(r4274039);
        double r4274041 = r4274040 - r4274032;
        double r4274042 = r4274035 * r4274041;
        double r4274043 = cbrt(r4274042);
        double r4274044 = a;
        double r4274045 = cbrt(r4274044);
        double r4274046 = r4274043 / r4274045;
        double r4274047 = -0.5;
        double r4274048 = -r4274032;
        double r4274049 = r4274048 + r4274032;
        double r4274050 = r4274047 * r4274049;
        double r4274051 = cbrt(r4274050);
        double r4274052 = r4274051 / r4274045;
        double r4274053 = r4274046 + r4274052;
        double r4274054 = r4274032 - r4274032;
        double r4274055 = r4274054 / r4274044;
        double r4274056 = r4274055 * r4274035;
        double r4274057 = cbrt(r4274056);
        double r4274058 = r4274032 + r4274040;
        double r4274059 = cbrt(r4274058);
        double r4274060 = r4274047 / r4274044;
        double r4274061 = cbrt(r4274060);
        double r4274062 = r4274059 * r4274061;
        double r4274063 = r4274057 + r4274062;
        double r4274064 = r4274034 ? r4274053 : r4274063;
        return r4274064;
}

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.6297615549700884e-171

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

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

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

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

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

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

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

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

    if -1.6297615549700884e-171 < g

    1. Initial program 36.4

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

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

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

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

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

Reproduce

herbie shell --seed 2019151 +o rules:numerics
(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))))))))