Average Error: 0.2 → 0.1
Time: 51.4s
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(4 \cdot \left(\left(b \cdot b\right) \cdot \left(1 - a \cdot 3\right) + \left(a \cdot a\right) \cdot \left(a + 1\right)\right) + \left(\left(b \cdot b\right) \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) + {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(4 \cdot \left(\left(b \cdot b\right) \cdot \left(1 - a \cdot 3\right) + \left(a \cdot a\right) \cdot \left(a + 1\right)\right) + \left(\left(b \cdot b\right) \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) + {a}^{4}\right)\right) - 1
double f(double a, double b) {
        double r71389832 = a;
        double r71389833 = r71389832 * r71389832;
        double r71389834 = b;
        double r71389835 = r71389834 * r71389834;
        double r71389836 = r71389833 + r71389835;
        double r71389837 = 2.0;
        double r71389838 = pow(r71389836, r71389837);
        double r71389839 = 4.0;
        double r71389840 = 1.0;
        double r71389841 = r71389840 + r71389832;
        double r71389842 = r71389833 * r71389841;
        double r71389843 = 3.0;
        double r71389844 = r71389843 * r71389832;
        double r71389845 = r71389840 - r71389844;
        double r71389846 = r71389835 * r71389845;
        double r71389847 = r71389842 + r71389846;
        double r71389848 = r71389839 * r71389847;
        double r71389849 = r71389838 + r71389848;
        double r71389850 = r71389849 - r71389840;
        return r71389850;
}

double f(double a, double b) {
        double r71389851 = 4.0;
        double r71389852 = b;
        double r71389853 = r71389852 * r71389852;
        double r71389854 = 1.0;
        double r71389855 = a;
        double r71389856 = 3.0;
        double r71389857 = r71389855 * r71389856;
        double r71389858 = r71389854 - r71389857;
        double r71389859 = r71389853 * r71389858;
        double r71389860 = r71389855 * r71389855;
        double r71389861 = r71389855 + r71389854;
        double r71389862 = r71389860 * r71389861;
        double r71389863 = r71389859 + r71389862;
        double r71389864 = r71389851 * r71389863;
        double r71389865 = 2.0;
        double r71389866 = r71389865 * r71389860;
        double r71389867 = r71389866 + r71389853;
        double r71389868 = r71389853 * r71389867;
        double r71389869 = pow(r71389855, r71389851);
        double r71389870 = r71389868 + r71389869;
        double r71389871 = r71389864 + r71389870;
        double r71389872 = r71389871 - r71389854;
        return r71389872;
}

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 pow10.2

    \[\leadsto \left(\left(\left(a \cdot a\right) \cdot \left(a \cdot \color{blue}{{a}^{1}}\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\]
  6. Applied pow10.2

    \[\leadsto \left(\left(\left(a \cdot a\right) \cdot \left(\color{blue}{{a}^{1}} \cdot {a}^{1}\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\]
  7. Applied pow-prod-up0.2

    \[\leadsto \left(\left(\left(a \cdot a\right) \cdot \color{blue}{{a}^{\left(1 + 1\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\]
  8. Applied pow10.2

    \[\leadsto \left(\left(\left(a \cdot \color{blue}{{a}^{1}}\right) \cdot {a}^{\left(1 + 1\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\]
  9. Applied pow10.2

    \[\leadsto \left(\left(\left(\color{blue}{{a}^{1}} \cdot {a}^{1}\right) \cdot {a}^{\left(1 + 1\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\]
  10. Applied pow-prod-up0.2

    \[\leadsto \left(\left(\color{blue}{{a}^{\left(1 + 1\right)}} \cdot {a}^{\left(1 + 1\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\]
  11. Applied pow-sqr0.1

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

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

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

Reproduce

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