Average Error: 0.2 → 0.2
Time: 6.8s
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 r252385 = a;
        double r252386 = r252385 * r252385;
        double r252387 = b;
        double r252388 = r252387 * r252387;
        double r252389 = r252386 + r252388;
        double r252390 = 2.0;
        double r252391 = pow(r252389, r252390);
        double r252392 = 4.0;
        double r252393 = 1.0;
        double r252394 = r252393 + r252385;
        double r252395 = r252386 * r252394;
        double r252396 = 3.0;
        double r252397 = r252396 * r252385;
        double r252398 = r252393 - r252397;
        double r252399 = r252388 * r252398;
        double r252400 = r252395 + r252399;
        double r252401 = r252392 * r252400;
        double r252402 = r252391 + r252401;
        double r252403 = r252402 - r252393;
        return r252403;
}

double f(double a, double b) {
        double r252404 = a;
        double r252405 = r252404 * r252404;
        double r252406 = b;
        double r252407 = r252406 * r252406;
        double r252408 = r252405 + r252407;
        double r252409 = 2.0;
        double r252410 = pow(r252408, r252409);
        double r252411 = 4.0;
        double r252412 = 1.0;
        double r252413 = r252412 + r252404;
        double r252414 = r252405 * r252413;
        double r252415 = 3.0;
        double r252416 = r252415 * r252404;
        double r252417 = r252412 - r252416;
        double r252418 = r252407 * r252417;
        double r252419 = r252414 + r252418;
        double r252420 = r252411 * r252419;
        double r252421 = r252410 + r252420;
        double r252422 = r252421 - r252412;
        return r252422;
}

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