Average Error: 35.9 → 32.1
Time: 8.3s
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]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}\]
\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]{\left(-g\right) + \sqrt{g \cdot g - h \cdot h}} + \sqrt[3]{\frac{1}{2 \cdot a}} \cdot \sqrt[3]{\left(-g\right) - \sqrt{g \cdot g - h \cdot h}}
double f(double g, double h, double a) {
        double r156153 = 1.0;
        double r156154 = 2.0;
        double r156155 = a;
        double r156156 = r156154 * r156155;
        double r156157 = r156153 / r156156;
        double r156158 = g;
        double r156159 = -r156158;
        double r156160 = r156158 * r156158;
        double r156161 = h;
        double r156162 = r156161 * r156161;
        double r156163 = r156160 - r156162;
        double r156164 = sqrt(r156163);
        double r156165 = r156159 + r156164;
        double r156166 = r156157 * r156165;
        double r156167 = cbrt(r156166);
        double r156168 = r156159 - r156164;
        double r156169 = r156157 * r156168;
        double r156170 = cbrt(r156169);
        double r156171 = r156167 + r156170;
        return r156171;
}

double f(double g, double h, double a) {
        double r156172 = 1.0;
        double r156173 = 2.0;
        double r156174 = a;
        double r156175 = r156173 * r156174;
        double r156176 = r156172 / r156175;
        double r156177 = cbrt(r156176);
        double r156178 = g;
        double r156179 = -r156178;
        double r156180 = r156178 * r156178;
        double r156181 = h;
        double r156182 = r156181 * r156181;
        double r156183 = r156180 - r156182;
        double r156184 = sqrt(r156183);
        double r156185 = r156179 + r156184;
        double r156186 = cbrt(r156185);
        double r156187 = r156177 * r156186;
        double r156188 = r156179 - r156184;
        double r156189 = cbrt(r156188);
        double r156190 = r156177 * r156189;
        double r156191 = r156187 + r156190;
        return r156191;
}

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.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 cbrt-prod33.8

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

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

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

Reproduce

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