Average Error: 0.2 → 0.2
Time: 7.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 r215425 = a;
        double r215426 = r215425 * r215425;
        double r215427 = b;
        double r215428 = r215427 * r215427;
        double r215429 = r215426 + r215428;
        double r215430 = 2.0;
        double r215431 = pow(r215429, r215430);
        double r215432 = 4.0;
        double r215433 = 1.0;
        double r215434 = r215433 + r215425;
        double r215435 = r215426 * r215434;
        double r215436 = 3.0;
        double r215437 = r215436 * r215425;
        double r215438 = r215433 - r215437;
        double r215439 = r215428 * r215438;
        double r215440 = r215435 + r215439;
        double r215441 = r215432 * r215440;
        double r215442 = r215431 + r215441;
        double r215443 = r215442 - r215433;
        return r215443;
}

double f(double a, double b) {
        double r215444 = a;
        double r215445 = r215444 * r215444;
        double r215446 = b;
        double r215447 = r215446 * r215446;
        double r215448 = r215445 + r215447;
        double r215449 = 2.0;
        double r215450 = pow(r215448, r215449);
        double r215451 = 4.0;
        double r215452 = 1.0;
        double r215453 = r215452 + r215444;
        double r215454 = r215445 * r215453;
        double r215455 = 3.0;
        double r215456 = r215455 * r215444;
        double r215457 = r215452 - r215456;
        double r215458 = r215447 * r215457;
        double r215459 = r215454 + r215458;
        double r215460 = r215451 * r215459;
        double r215461 = r215450 + r215460;
        double r215462 = r215461 - r215452;
        return r215462;
}

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 2019353 +o rules:numerics
(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))