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

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

\end{array}
double f(double g, double h, double a) {
        double r130924 = 1.0;
        double r130925 = 2.0;
        double r130926 = a;
        double r130927 = r130925 * r130926;
        double r130928 = r130924 / r130927;
        double r130929 = g;
        double r130930 = -r130929;
        double r130931 = r130929 * r130929;
        double r130932 = h;
        double r130933 = r130932 * r130932;
        double r130934 = r130931 - r130933;
        double r130935 = sqrt(r130934);
        double r130936 = r130930 + r130935;
        double r130937 = r130928 * r130936;
        double r130938 = cbrt(r130937);
        double r130939 = r130930 - r130935;
        double r130940 = r130928 * r130939;
        double r130941 = cbrt(r130940);
        double r130942 = r130938 + r130941;
        return r130942;
}

double f(double g, double h, double a) {
        double r130943 = g;
        double r130944 = -1.5872522339816564e-162;
        bool r130945 = r130943 <= r130944;
        double r130946 = 1.0;
        double r130947 = -r130943;
        double r130948 = r130943 * r130943;
        double r130949 = h;
        double r130950 = r130949 * r130949;
        double r130951 = r130948 - r130950;
        double r130952 = sqrt(r130951);
        double r130953 = sqrt(r130952);
        double r130954 = r130953 * r130953;
        double r130955 = r130947 + r130954;
        double r130956 = r130946 * r130955;
        double r130957 = cbrt(r130956);
        double r130958 = 2.0;
        double r130959 = a;
        double r130960 = r130958 * r130959;
        double r130961 = cbrt(r130960);
        double r130962 = r130957 / r130961;
        double r130963 = r130947 - r130952;
        double r130964 = r130946 * r130963;
        double r130965 = cbrt(r130964);
        double r130966 = r130965 / r130961;
        double r130967 = r130962 + r130966;
        double r130968 = r130946 / r130960;
        double r130969 = r130947 * r130947;
        double r130970 = r130952 * r130952;
        double r130971 = r130969 - r130970;
        double r130972 = r130968 * r130971;
        double r130973 = cbrt(r130972);
        double r130974 = cbrt(r130963);
        double r130975 = r130973 / r130974;
        double r130976 = r130975 + r130966;
        double r130977 = r130945 ? r130967 : r130976;
        return r130977;
}

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

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

      \[\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-div35.3

      \[\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 associate-*l/35.3

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

      \[\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}}} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt31.5

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

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

    if -1.5872522339816564e-162 < g

    1. Initial program 37.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/37.0

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

      \[\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 flip-+32.5

      \[\leadsto \sqrt[3]{\frac{1}{2 \cdot a} \cdot \color{blue}{\frac{\left(-g\right) \cdot \left(-g\right) - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}}{\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. Applied associate-*r/32.6

      \[\leadsto \sqrt[3]{\color{blue}{\frac{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) \cdot \left(-g\right) - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}\right)}{\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}}\]
    8. Applied cbrt-div32.6

      \[\leadsto \color{blue}{\frac{\sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\left(-g\right) \cdot \left(-g\right) - \sqrt{g \cdot g - h \cdot h} \cdot \sqrt{g \cdot g - h \cdot h}\right)}}{\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}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification32.1

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

Reproduce

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