Average Error: 0.2 → 0.1
Time: 55.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(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 + a\right)\right) \cdot 4 + \left(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\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(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 + a\right)\right) \cdot 4 + \left(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\right)\right) - 1
double f(double a, double b) {
        double r25425348 = a;
        double r25425349 = r25425348 * r25425348;
        double r25425350 = b;
        double r25425351 = r25425350 * r25425350;
        double r25425352 = r25425349 + r25425351;
        double r25425353 = 2.0;
        double r25425354 = pow(r25425352, r25425353);
        double r25425355 = 4.0;
        double r25425356 = 1.0;
        double r25425357 = r25425356 + r25425348;
        double r25425358 = r25425349 * r25425357;
        double r25425359 = 3.0;
        double r25425360 = r25425359 * r25425348;
        double r25425361 = r25425356 - r25425360;
        double r25425362 = r25425351 * r25425361;
        double r25425363 = r25425358 + r25425362;
        double r25425364 = r25425355 * r25425363;
        double r25425365 = r25425354 + r25425364;
        double r25425366 = r25425365 - r25425356;
        return r25425366;
}

double f(double a, double b) {
        double r25425367 = 1.0;
        double r25425368 = 3.0;
        double r25425369 = a;
        double r25425370 = r25425368 * r25425369;
        double r25425371 = r25425367 - r25425370;
        double r25425372 = b;
        double r25425373 = r25425372 * r25425372;
        double r25425374 = r25425371 * r25425373;
        double r25425375 = r25425369 * r25425369;
        double r25425376 = r25425367 + r25425369;
        double r25425377 = r25425375 * r25425376;
        double r25425378 = r25425374 + r25425377;
        double r25425379 = 4.0;
        double r25425380 = r25425378 * r25425379;
        double r25425381 = 2.0;
        double r25425382 = r25425381 * r25425375;
        double r25425383 = r25425382 + r25425373;
        double r25425384 = r25425372 * r25425383;
        double r25425385 = r25425384 * r25425372;
        double r25425386 = pow(r25425369, r25425379);
        double r25425387 = r25425385 + r25425386;
        double r25425388 = r25425380 + r25425387;
        double r25425389 = r25425388 - r25425367;
        return r25425389;
}

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. Taylor expanded around 0 0.0

    \[\leadsto \left(\color{blue}{\left({b}^{4} + \left(2 \cdot \left({a}^{2} \cdot {b}^{2}\right) + {a}^{4}\right)\right)} + 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\]
  3. Simplified0.2

    \[\leadsto \left(\color{blue}{\left(\left(a \cdot a\right) \cdot \left(a \cdot a\right) + \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) \cdot \left(b \cdot b\right)\right)} + 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\]
  4. Using strategy rm
  5. Applied associate-*r*0.2

    \[\leadsto \left(\left(\left(a \cdot a\right) \cdot \left(a \cdot a\right) + \color{blue}{\left(\left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) \cdot b\right) \cdot b}\right) + 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\]
  6. Taylor expanded around -inf 0.1

    \[\leadsto \left(\left(\color{blue}{{a}^{4}} + \left(\left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) \cdot b\right) \cdot b\right) + 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\]
  7. Final simplification0.1

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

Reproduce

herbie shell --seed 2019121 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))