Average Error: 0.2 → 0.2
Time: 4.9m
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(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(1 + a\right) \cdot \left(a \cdot a\right)\right) \cdot 4 - \left(1 - {\left(b \cdot b + a \cdot a\right)}^{2}\right)\]
\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(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(1 + a\right) \cdot \left(a \cdot a\right)\right) \cdot 4 - \left(1 - {\left(b \cdot b + a \cdot a\right)}^{2}\right)
double f(double a, double b) {
        double r931449 = a;
        double r931450 = r931449 * r931449;
        double r931451 = b;
        double r931452 = r931451 * r931451;
        double r931453 = r931450 + r931452;
        double r931454 = 2.0;
        double r931455 = pow(r931453, r931454);
        double r931456 = 4.0;
        double r931457 = 1.0;
        double r931458 = r931457 + r931449;
        double r931459 = r931450 * r931458;
        double r931460 = 3.0;
        double r931461 = r931460 * r931449;
        double r931462 = r931457 - r931461;
        double r931463 = r931452 * r931462;
        double r931464 = r931459 + r931463;
        double r931465 = r931456 * r931464;
        double r931466 = r931455 + r931465;
        double r931467 = r931466 - r931457;
        return r931467;
}

double f(double a, double b) {
        double r931468 = 1.0;
        double r931469 = 3.0;
        double r931470 = a;
        double r931471 = r931469 * r931470;
        double r931472 = r931468 - r931471;
        double r931473 = b;
        double r931474 = r931473 * r931473;
        double r931475 = r931472 * r931474;
        double r931476 = r931468 + r931470;
        double r931477 = r931470 * r931470;
        double r931478 = r931476 * r931477;
        double r931479 = r931475 + r931478;
        double r931480 = 4.0;
        double r931481 = r931479 * r931480;
        double r931482 = r931474 + r931477;
        double r931483 = 2.0;
        double r931484 = pow(r931482, r931483);
        double r931485 = r931468 - r931484;
        double r931486 = r931481 - r931485;
        return r931486;
}

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. Simplified0.2

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

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

Reproduce

herbie shell --seed 2019179 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))