Average Error: 35.8 → 32.2
Time: 16.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)}\]
\[\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}\]
\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)}
\sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\sqrt{g \cdot g - h \cdot h} - g} + \frac{\sqrt[3]{1 \cdot \left(\left(-g\right) - \sqrt{g \cdot g - h \cdot h}\right)}}{\sqrt[3]{2 \cdot a}}
double f(double g, double h, double a) {
        double r113867 = 1.0;
        double r113868 = 2.0;
        double r113869 = a;
        double r113870 = r113868 * r113869;
        double r113871 = r113867 / r113870;
        double r113872 = g;
        double r113873 = -r113872;
        double r113874 = r113872 * r113872;
        double r113875 = h;
        double r113876 = r113875 * r113875;
        double r113877 = r113874 - r113876;
        double r113878 = sqrt(r113877);
        double r113879 = r113873 + r113878;
        double r113880 = r113871 * r113879;
        double r113881 = cbrt(r113880);
        double r113882 = r113873 - r113878;
        double r113883 = r113871 * r113882;
        double r113884 = cbrt(r113883);
        double r113885 = r113881 + r113884;
        return r113885;
}

double f(double g, double h, double a) {
        double r113886 = 1.0;
        double r113887 = 2.0;
        double r113888 = a;
        double r113889 = r113887 * r113888;
        double r113890 = r113886 / r113889;
        double r113891 = cbrt(r113890);
        double r113892 = g;
        double r113893 = r113892 * r113892;
        double r113894 = h;
        double r113895 = r113894 * r113894;
        double r113896 = r113893 - r113895;
        double r113897 = sqrt(r113896);
        double r113898 = r113897 - r113892;
        double r113899 = cbrt(r113898);
        double r113900 = r113891 * r113899;
        double r113901 = -r113892;
        double r113902 = r113901 - r113897;
        double r113903 = r113886 * r113902;
        double r113904 = cbrt(r113903);
        double r113905 = cbrt(r113889);
        double r113906 = r113904 / r113905;
        double r113907 = r113900 + r113906;
        return r113907;
}

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

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

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

    \[\leadsto \sqrt[3]{\frac{1}{2 \cdot a} \cdot \left(\sqrt{g \cdot g - h \cdot h} - g\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}}}\]
  6. Using strategy rm
  7. Applied cbrt-prod32.2

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

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

Reproduce

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