Average Error: 0.2 → 0.2
Time: 5.1s
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 r219408 = a;
        double r219409 = r219408 * r219408;
        double r219410 = b;
        double r219411 = r219410 * r219410;
        double r219412 = r219409 + r219411;
        double r219413 = 2.0;
        double r219414 = pow(r219412, r219413);
        double r219415 = 4.0;
        double r219416 = 1.0;
        double r219417 = r219416 + r219408;
        double r219418 = r219409 * r219417;
        double r219419 = 3.0;
        double r219420 = r219419 * r219408;
        double r219421 = r219416 - r219420;
        double r219422 = r219411 * r219421;
        double r219423 = r219418 + r219422;
        double r219424 = r219415 * r219423;
        double r219425 = r219414 + r219424;
        double r219426 = r219425 - r219416;
        return r219426;
}

double f(double a, double b) {
        double r219427 = a;
        double r219428 = r219427 * r219427;
        double r219429 = b;
        double r219430 = r219429 * r219429;
        double r219431 = r219428 + r219430;
        double r219432 = 2.0;
        double r219433 = pow(r219431, r219432);
        double r219434 = 4.0;
        double r219435 = 1.0;
        double r219436 = r219435 + r219427;
        double r219437 = r219428 * r219436;
        double r219438 = 3.0;
        double r219439 = r219438 * r219427;
        double r219440 = r219435 - r219439;
        double r219441 = r219430 * r219440;
        double r219442 = r219437 + r219441;
        double r219443 = r219434 * r219442;
        double r219444 = r219433 + r219443;
        double r219445 = r219444 - r219435;
        return r219445;
}

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