Average Error: 0.2 → 0.2
Time: 17.9s
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 r125372 = a;
        double r125373 = r125372 * r125372;
        double r125374 = b;
        double r125375 = r125374 * r125374;
        double r125376 = r125373 + r125375;
        double r125377 = 2.0;
        double r125378 = pow(r125376, r125377);
        double r125379 = 4.0;
        double r125380 = 1.0;
        double r125381 = r125380 + r125372;
        double r125382 = r125373 * r125381;
        double r125383 = 3.0;
        double r125384 = r125383 * r125372;
        double r125385 = r125380 - r125384;
        double r125386 = r125375 * r125385;
        double r125387 = r125382 + r125386;
        double r125388 = r125379 * r125387;
        double r125389 = r125378 + r125388;
        double r125390 = r125389 - r125380;
        return r125390;
}

double f(double a, double b) {
        double r125391 = a;
        double r125392 = r125391 * r125391;
        double r125393 = b;
        double r125394 = r125393 * r125393;
        double r125395 = r125392 + r125394;
        double r125396 = 2.0;
        double r125397 = pow(r125395, r125396);
        double r125398 = 4.0;
        double r125399 = 1.0;
        double r125400 = r125399 + r125391;
        double r125401 = r125392 * r125400;
        double r125402 = 3.0;
        double r125403 = r125402 * r125391;
        double r125404 = r125399 - r125403;
        double r125405 = r125394 * r125404;
        double r125406 = r125401 + r125405;
        double r125407 = r125398 * r125406;
        double r125408 = r125397 + r125407;
        double r125409 = r125408 - r125399;
        return r125409;
}

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