Average Error: 35.1 → 31.0
Time: 26.0s
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 2.4448816157766584 \cdot 10^{-161}:\\ \;\;\;\;\sqrt[3]{\left(g + \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{1}{\frac{a}{\frac{1}{2}}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{\frac{\frac{-1}{2}}{a}} \cdot \sqrt[3]{g + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{\sqrt{g \cdot g - h \cdot h} - g}{\frac{a}{\frac{1}{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 2.4448816157766584 \cdot 10^{-161}:\\
\;\;\;\;\sqrt[3]{\left(g + \sqrt{g \cdot g - h \cdot h}\right) \cdot \frac{\frac{-1}{2}}{a}} + \sqrt[3]{\left(-g\right) - g} \cdot \sqrt[3]{\frac{1}{\frac{a}{\frac{1}{2}}}}\\

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

\end{array}
double f(double g, double h, double a) {
        double r2485015 = 1.0;
        double r2485016 = 2.0;
        double r2485017 = a;
        double r2485018 = r2485016 * r2485017;
        double r2485019 = r2485015 / r2485018;
        double r2485020 = g;
        double r2485021 = -r2485020;
        double r2485022 = r2485020 * r2485020;
        double r2485023 = h;
        double r2485024 = r2485023 * r2485023;
        double r2485025 = r2485022 - r2485024;
        double r2485026 = sqrt(r2485025);
        double r2485027 = r2485021 + r2485026;
        double r2485028 = r2485019 * r2485027;
        double r2485029 = cbrt(r2485028);
        double r2485030 = r2485021 - r2485026;
        double r2485031 = r2485019 * r2485030;
        double r2485032 = cbrt(r2485031);
        double r2485033 = r2485029 + r2485032;
        return r2485033;
}

double f(double g, double h, double a) {
        double r2485034 = g;
        double r2485035 = 2.4448816157766584e-161;
        bool r2485036 = r2485034 <= r2485035;
        double r2485037 = r2485034 * r2485034;
        double r2485038 = h;
        double r2485039 = r2485038 * r2485038;
        double r2485040 = r2485037 - r2485039;
        double r2485041 = sqrt(r2485040);
        double r2485042 = r2485034 + r2485041;
        double r2485043 = -0.5;
        double r2485044 = a;
        double r2485045 = r2485043 / r2485044;
        double r2485046 = r2485042 * r2485045;
        double r2485047 = cbrt(r2485046);
        double r2485048 = -r2485034;
        double r2485049 = r2485048 - r2485034;
        double r2485050 = cbrt(r2485049);
        double r2485051 = 1.0;
        double r2485052 = 0.5;
        double r2485053 = r2485044 / r2485052;
        double r2485054 = r2485051 / r2485053;
        double r2485055 = cbrt(r2485054);
        double r2485056 = r2485050 * r2485055;
        double r2485057 = r2485047 + r2485056;
        double r2485058 = cbrt(r2485045);
        double r2485059 = cbrt(r2485042);
        double r2485060 = r2485058 * r2485059;
        double r2485061 = r2485041 - r2485034;
        double r2485062 = r2485061 / r2485053;
        double r2485063 = cbrt(r2485062);
        double r2485064 = r2485060 + r2485063;
        double r2485065 = r2485036 ? r2485057 : r2485064;
        return r2485065;
}

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 < 2.4448816157766584e-161

    1. Initial program 36.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. Simplified36.2

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

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

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

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

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

    if 2.4448816157766584e-161 < g

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

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

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

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

Reproduce

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