Average Error: 0.2 → 0.0
Time: 47.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(3 + a\right)\right)\right) - 1\]
\[\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + \left(a \cdot a - a \cdot \left(a \cdot a\right)\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)\]
double f(double a, double b) {
        double r54274331 = a;
        double r54274332 = r54274331 * r54274331;
        double r54274333 = b;
        double r54274334 = r54274333 * r54274333;
        double r54274335 = r54274332 + r54274334;
        double r54274336 = 2.0;
        double r54274337 = pow(r54274335, r54274336);
        double r54274338 = 4.0;
        double r54274339 = 1.0;
        double r54274340 = r54274339 - r54274331;
        double r54274341 = r54274332 * r54274340;
        double r54274342 = 3.0;
        double r54274343 = r54274342 + r54274331;
        double r54274344 = r54274334 * r54274343;
        double r54274345 = r54274341 + r54274344;
        double r54274346 = r54274338 * r54274345;
        double r54274347 = r54274337 + r54274346;
        double r54274348 = r54274347 - r54274339;
        return r54274348;
}

double f(double a, double b) {
        double r54274349 = b;
        double r54274350 = r54274349 * r54274349;
        double r54274351 = 3.0;
        double r54274352 = a;
        double r54274353 = r54274351 + r54274352;
        double r54274354 = r54274350 * r54274353;
        double r54274355 = r54274352 * r54274352;
        double r54274356 = r54274352 * r54274355;
        double r54274357 = r54274355 - r54274356;
        double r54274358 = r54274354 + r54274357;
        double r54274359 = 4.0;
        double r54274360 = r54274358 * r54274359;
        double r54274361 = 1.0;
        double r54274362 = r54274355 + r54274350;
        double r54274363 = sqrt(r54274362);
        double r54274364 = pow(r54274363, r54274359);
        double r54274365 = r54274361 - r54274364;
        double r54274366 = r54274360 - r54274365;
        return r54274366;
}

\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(3 + a\right)\right)\right) - 1
\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + \left(a \cdot a - a \cdot \left(a \cdot a\right)\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)

Error

Bits error versus a

Bits error versus b

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(3 + a\right)\right)\right) - 1\]
  2. Simplified0.2

    \[\leadsto \color{blue}{\left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \left(a \cdot a + b \cdot b\right) \cdot \left(a \cdot a + b \cdot b\right)\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.2

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \left(a \cdot a + b \cdot b\right) \cdot \color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{a \cdot a + b \cdot b}\right)}\right)\]
  5. Applied associate-*r*0.1

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \color{blue}{\left(\left(a \cdot a + b \cdot b\right) \cdot \sqrt{a \cdot a + b \cdot b}\right) \cdot \sqrt{a \cdot a + b \cdot b}}\right)\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt0.1

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \left(\color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{a \cdot a + b \cdot b}\right)} \cdot \sqrt{a \cdot a + b \cdot b}\right) \cdot \sqrt{a \cdot a + b \cdot b}\right)\]
  8. Applied pow30.1

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3}} \cdot \sqrt{a \cdot a + b \cdot b}\right)\]
  9. Using strategy rm
  10. Applied pow10.1

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{3} \cdot \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{1}}\right)\]
  11. Applied pow-prod-up0.0

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - \color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(3 + 1\right)}}\right)\]
  12. Simplified0.0

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\color{blue}{4}}\right)\]
  13. Taylor expanded around inf 0.0

    \[\leadsto \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \color{blue}{\left({a}^{2} - {a}^{3}\right)}\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)\]
  14. Simplified0.0

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

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

Reproduce

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