Average Error: 36.0 → 32.1
Time: 26.1s
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 r8331221 = 1.0;
        double r8331222 = 2.0;
        double r8331223 = a;
        double r8331224 = r8331222 * r8331223;
        double r8331225 = r8331221 / r8331224;
        double r8331226 = g;
        double r8331227 = -r8331226;
        double r8331228 = r8331226 * r8331226;
        double r8331229 = h;
        double r8331230 = r8331229 * r8331229;
        double r8331231 = r8331228 - r8331230;
        double r8331232 = sqrt(r8331231);
        double r8331233 = r8331227 + r8331232;
        double r8331234 = r8331225 * r8331233;
        double r8331235 = cbrt(r8331234);
        double r8331236 = r8331227 - r8331232;
        double r8331237 = r8331225 * r8331236;
        double r8331238 = cbrt(r8331237);
        double r8331239 = r8331235 + r8331238;
        return r8331239;
}

double f(double g, double h, double a) {
        double r8331240 = 1.0;
        double r8331241 = 2.0;
        double r8331242 = a;
        double r8331243 = r8331241 * r8331242;
        double r8331244 = r8331240 / r8331243;
        double r8331245 = cbrt(r8331244);
        double r8331246 = g;
        double r8331247 = -r8331246;
        double r8331248 = r8331246 * r8331246;
        double r8331249 = h;
        double r8331250 = r8331249 * r8331249;
        double r8331251 = r8331248 - r8331250;
        double r8331252 = sqrt(r8331251);
        double r8331253 = r8331247 + r8331252;
        double r8331254 = cbrt(r8331253);
        double r8331255 = r8331245 * r8331254;
        double r8331256 = r8331247 - r8331252;
        double r8331257 = cbrt(r8331256);
        double r8331258 = r8331245 * r8331257;
        double r8331259 = r8331255 + r8331258;
        return r8331259;
}

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 
(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))))))))