Average Error: 36.0 → 32.1
Time: 25.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 r7746193 = 1.0;
        double r7746194 = 2.0;
        double r7746195 = a;
        double r7746196 = r7746194 * r7746195;
        double r7746197 = r7746193 / r7746196;
        double r7746198 = g;
        double r7746199 = -r7746198;
        double r7746200 = r7746198 * r7746198;
        double r7746201 = h;
        double r7746202 = r7746201 * r7746201;
        double r7746203 = r7746200 - r7746202;
        double r7746204 = sqrt(r7746203);
        double r7746205 = r7746199 + r7746204;
        double r7746206 = r7746197 * r7746205;
        double r7746207 = cbrt(r7746206);
        double r7746208 = r7746199 - r7746204;
        double r7746209 = r7746197 * r7746208;
        double r7746210 = cbrt(r7746209);
        double r7746211 = r7746207 + r7746210;
        return r7746211;
}

double f(double g, double h, double a) {
        double r7746212 = 1.0;
        double r7746213 = 2.0;
        double r7746214 = a;
        double r7746215 = r7746213 * r7746214;
        double r7746216 = r7746212 / r7746215;
        double r7746217 = cbrt(r7746216);
        double r7746218 = g;
        double r7746219 = -r7746218;
        double r7746220 = r7746218 * r7746218;
        double r7746221 = h;
        double r7746222 = r7746221 * r7746221;
        double r7746223 = r7746220 - r7746222;
        double r7746224 = sqrt(r7746223);
        double r7746225 = r7746219 + r7746224;
        double r7746226 = cbrt(r7746225);
        double r7746227 = r7746217 * r7746226;
        double r7746228 = r7746219 - r7746224;
        double r7746229 = cbrt(r7746228);
        double r7746230 = r7746217 * r7746229;
        double r7746231 = r7746227 + r7746230;
        return r7746231;
}

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 36.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 cbrt-prod34.0

    \[\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 2019174 +o rules:numerics
(FPCore (g h a)
  :name "2-ancestry mixing, positive discriminant"
  (+ (cbrt (* (/ 1.0 (* 2.0 a)) (+ (- g) (sqrt (- (* g g) (* h h)))))) (cbrt (* (/ 1.0 (* 2.0 a)) (- (- g) (sqrt (- (* g g) (* h h))))))))