Average Error: 34.8 → 31.0
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.5530414921382858 \cdot 10^{-162}:\\ \;\;\;\;\sqrt[3]{\frac{\left(-g\right) - \left(-g\right)}{a \cdot 2}} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \frac{\sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}}{\sqrt[3]{a \cdot 2}}\\ \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.5530414921382858 \cdot 10^{-162}:\\
\;\;\;\;\sqrt[3]{\frac{\left(-g\right) - \left(-g\right)}{a \cdot 2}} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{2}} \cdot \sqrt[3]{\frac{1}{a}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r4419080 = 1.0;
        double r4419081 = 2.0;
        double r4419082 = a;
        double r4419083 = r4419081 * r4419082;
        double r4419084 = r4419080 / r4419083;
        double r4419085 = g;
        double r4419086 = -r4419085;
        double r4419087 = r4419085 * r4419085;
        double r4419088 = h;
        double r4419089 = r4419088 * r4419088;
        double r4419090 = r4419087 - r4419089;
        double r4419091 = sqrt(r4419090);
        double r4419092 = r4419086 + r4419091;
        double r4419093 = r4419084 * r4419092;
        double r4419094 = cbrt(r4419093);
        double r4419095 = r4419086 - r4419091;
        double r4419096 = r4419084 * r4419095;
        double r4419097 = cbrt(r4419096);
        double r4419098 = r4419094 + r4419097;
        return r4419098;
}

double f(double g, double h, double a) {
        double r4419099 = g;
        double r4419100 = 1.5530414921382858e-162;
        bool r4419101 = r4419099 <= r4419100;
        double r4419102 = -r4419099;
        double r4419103 = r4419102 - r4419102;
        double r4419104 = a;
        double r4419105 = 2.0;
        double r4419106 = r4419104 * r4419105;
        double r4419107 = r4419103 / r4419106;
        double r4419108 = cbrt(r4419107);
        double r4419109 = r4419099 * r4419099;
        double r4419110 = h;
        double r4419111 = r4419110 * r4419110;
        double r4419112 = r4419109 - r4419111;
        double r4419113 = sqrt(r4419112);
        double r4419114 = r4419113 - r4419099;
        double r4419115 = r4419114 / r4419105;
        double r4419116 = cbrt(r4419115);
        double r4419117 = 1.0;
        double r4419118 = r4419117 / r4419104;
        double r4419119 = cbrt(r4419118);
        double r4419120 = r4419116 * r4419119;
        double r4419121 = r4419108 + r4419120;
        double r4419122 = r4419114 / r4419106;
        double r4419123 = cbrt(r4419122);
        double r4419124 = r4419102 - r4419113;
        double r4419125 = cbrt(r4419124);
        double r4419126 = cbrt(r4419106);
        double r4419127 = r4419125 / r4419126;
        double r4419128 = r4419123 + r4419127;
        double r4419129 = r4419101 ? r4419121 : r4419128;
        return r4419129;
}

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.5530414921382858e-162

    1. Initial program 35.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. Simplified35.3

      \[\leadsto \color{blue}{\sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{a \cdot 2}} + \sqrt[3]{\frac{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}{a \cdot 2}}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity35.3

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

      \[\leadsto \sqrt[3]{\frac{\color{blue}{1 \cdot \sqrt{g \cdot g - h \cdot h}} - 1 \cdot g}{a \cdot 2}} + \sqrt[3]{\frac{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}{a \cdot 2}}\]
    6. Applied distribute-lft-out--35.3

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

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

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

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

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

    if 1.5530414921382858e-162 < g

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

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

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

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

Reproduce

herbie shell --seed 2019134 +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))))))))