Average Error: 0.2 → 0.0
Time: 1.1m
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(b \cdot \left(b \cdot \left(1 - a \cdot 3\right)\right) + a \cdot \left(a \cdot a + a\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)\]
double f(double a, double b) {
        double r44540876 = a;
        double r44540877 = r44540876 * r44540876;
        double r44540878 = b;
        double r44540879 = r44540878 * r44540878;
        double r44540880 = r44540877 + r44540879;
        double r44540881 = 2.0;
        double r44540882 = pow(r44540880, r44540881);
        double r44540883 = 4.0;
        double r44540884 = 1.0;
        double r44540885 = r44540884 + r44540876;
        double r44540886 = r44540877 * r44540885;
        double r44540887 = 3.0;
        double r44540888 = r44540887 * r44540876;
        double r44540889 = r44540884 - r44540888;
        double r44540890 = r44540879 * r44540889;
        double r44540891 = r44540886 + r44540890;
        double r44540892 = r44540883 * r44540891;
        double r44540893 = r44540882 + r44540892;
        double r44540894 = r44540893 - r44540884;
        return r44540894;
}

double f(double a, double b) {
        double r44540895 = b;
        double r44540896 = 1.0;
        double r44540897 = a;
        double r44540898 = 3.0;
        double r44540899 = r44540897 * r44540898;
        double r44540900 = r44540896 - r44540899;
        double r44540901 = r44540895 * r44540900;
        double r44540902 = r44540895 * r44540901;
        double r44540903 = r44540897 * r44540897;
        double r44540904 = r44540903 + r44540897;
        double r44540905 = r44540897 * r44540904;
        double r44540906 = r44540902 + r44540905;
        double r44540907 = 4.0;
        double r44540908 = r44540906 * r44540907;
        double r44540909 = r44540895 * r44540895;
        double r44540910 = r44540903 + r44540909;
        double r44540911 = sqrt(r44540910);
        double r44540912 = pow(r44540911, r44540907);
        double r44540913 = r44540896 - r44540912;
        double r44540914 = r44540908 - r44540913;
        return r44540914;
}

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

    \[\leadsto \color{blue}{\left(a \cdot \left(a \cdot a + a\right) + \left(b \cdot \left(1 - 3 \cdot a\right)\right) \cdot b\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(a \cdot \left(a \cdot a + a\right) + \left(b \cdot \left(1 - 3 \cdot a\right)\right) \cdot b\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(a \cdot \left(a \cdot a + a\right) + \left(b \cdot \left(1 - 3 \cdot a\right)\right) \cdot b\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 pow10.1

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

    \[\leadsto \left(a \cdot \left(a \cdot a + a\right) + \left(b \cdot \left(1 - 3 \cdot a\right)\right) \cdot b\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 {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{1}\right)\]
  9. Applied pow30.1

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

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

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

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

Reproduce

herbie shell --seed 2019102 
(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))