Average Error: 0.2 → 0.2
Time: 6.7s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r242268 = a;
        double r242269 = r242268 * r242268;
        double r242270 = b;
        double r242271 = r242270 * r242270;
        double r242272 = r242269 + r242271;
        double r242273 = 2.0;
        double r242274 = pow(r242272, r242273);
        double r242275 = 4.0;
        double r242276 = 1.0;
        double r242277 = r242276 + r242268;
        double r242278 = r242269 * r242277;
        double r242279 = 3.0;
        double r242280 = r242279 * r242268;
        double r242281 = r242276 - r242280;
        double r242282 = r242271 * r242281;
        double r242283 = r242278 + r242282;
        double r242284 = r242275 * r242283;
        double r242285 = r242274 + r242284;
        double r242286 = r242285 - r242276;
        return r242286;
}

double f(double a, double b) {
        double r242287 = a;
        double r242288 = r242287 * r242287;
        double r242289 = b;
        double r242290 = r242289 * r242289;
        double r242291 = r242288 + r242290;
        double r242292 = 2.0;
        double r242293 = pow(r242291, r242292);
        double r242294 = 4.0;
        double r242295 = 1.0;
        double r242296 = r242295 + r242287;
        double r242297 = r242288 * r242296;
        double r242298 = 3.0;
        double r242299 = r242298 * r242287;
        double r242300 = r242295 - r242299;
        double r242301 = r242290 * r242300;
        double r242302 = r242297 + r242301;
        double r242303 = r242294 * r242302;
        double r242304 = r242293 + r242303;
        double r242305 = r242304 - r242295;
        return r242305;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020057 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))