Average Error: 35.7 → 30.8
Time: 9.9s
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.4401173585185467 \cdot 10^{-164}:\\ \;\;\;\;\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \frac{\sqrt[3]{1 \cdot \frac{\left({g}^{2} - {g}^{2}\right) + {h}^{2}}{\sqrt{\left(g - h\right) \cdot \left(g + h\right)} - g}}}{\sqrt[3]{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\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) - g\right)}}{\sqrt[3]{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.4401173585185467 \cdot 10^{-164}:\\
\;\;\;\;\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \frac{\sqrt[3]{1 \cdot \frac{\left({g}^{2} - {g}^{2}\right) + {h}^{2}}{\sqrt{\left(g - h\right) \cdot \left(g + h\right)} - g}}}{\sqrt[3]{2 \cdot a}}\\

\mathbf{else}:\\
\;\;\;\;\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) - g\right)}}{\sqrt[3]{2 \cdot a}}\\

\end{array}
double f(double g, double h, double a) {
        double r137048 = 1.0;
        double r137049 = 2.0;
        double r137050 = a;
        double r137051 = r137049 * r137050;
        double r137052 = r137048 / r137051;
        double r137053 = g;
        double r137054 = -r137053;
        double r137055 = r137053 * r137053;
        double r137056 = h;
        double r137057 = r137056 * r137056;
        double r137058 = r137055 - r137057;
        double r137059 = sqrt(r137058);
        double r137060 = r137054 + r137059;
        double r137061 = r137052 * r137060;
        double r137062 = cbrt(r137061);
        double r137063 = r137054 - r137059;
        double r137064 = r137052 * r137063;
        double r137065 = cbrt(r137064);
        double r137066 = r137062 + r137065;
        return r137066;
}

double f(double g, double h, double a) {
        double r137067 = g;
        double r137068 = -1.4401173585185467e-164;
        bool r137069 = r137067 <= r137068;
        double r137070 = 1.0;
        double r137071 = 2.0;
        double r137072 = a;
        double r137073 = r137071 * r137072;
        double r137074 = r137070 / r137073;
        double r137075 = cbrt(r137074);
        double r137076 = -r137067;
        double r137077 = r137067 * r137067;
        double r137078 = h;
        double r137079 = r137078 * r137078;
        double r137080 = r137077 - r137079;
        double r137081 = sqrt(r137080);
        double r137082 = r137076 + r137081;
        double r137083 = cbrt(r137082);
        double r137084 = r137075 * r137083;
        double r137085 = 2.0;
        double r137086 = pow(r137067, r137085);
        double r137087 = r137086 - r137086;
        double r137088 = pow(r137078, r137085);
        double r137089 = r137087 + r137088;
        double r137090 = r137067 - r137078;
        double r137091 = r137067 + r137078;
        double r137092 = r137090 * r137091;
        double r137093 = sqrt(r137092);
        double r137094 = r137093 - r137067;
        double r137095 = r137089 / r137094;
        double r137096 = r137070 * r137095;
        double r137097 = cbrt(r137096);
        double r137098 = cbrt(r137073);
        double r137099 = r137097 / r137098;
        double r137100 = r137084 + r137099;
        double r137101 = r137074 * r137082;
        double r137102 = cbrt(r137101);
        double r137103 = r137076 - r137067;
        double r137104 = r137070 * r137103;
        double r137105 = cbrt(r137104);
        double r137106 = r137105 / r137098;
        double r137107 = r137102 + r137106;
        double r137108 = r137069 ? r137100 : r137107;
        return r137108;
}

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.4401173585185467e-164

    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.9

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

      \[\leadsto \color{blue}{\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}}} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}\]
    7. Using strategy rm
    8. Applied difference-of-squares31.1

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

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

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

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

    if -1.4401173585185467e-164 < g

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

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

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

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

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

Reproduce

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