Average Error: 0.2 → 0.0
Time: 7.3s
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(\sqrt{1}\right)}^{2} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(2 \cdot 2\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\]
\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(\sqrt{1}\right)}^{2} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(2 \cdot 2\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
double f(double a, double b) {
        double r362897 = a;
        double r362898 = r362897 * r362897;
        double r362899 = b;
        double r362900 = r362899 * r362899;
        double r362901 = r362898 + r362900;
        double r362902 = 2.0;
        double r362903 = pow(r362901, r362902);
        double r362904 = 4.0;
        double r362905 = 1.0;
        double r362906 = r362905 + r362897;
        double r362907 = r362898 * r362906;
        double r362908 = 3.0;
        double r362909 = r362908 * r362897;
        double r362910 = r362905 - r362909;
        double r362911 = r362900 * r362910;
        double r362912 = r362907 + r362911;
        double r362913 = r362904 * r362912;
        double r362914 = r362903 + r362913;
        double r362915 = r362914 - r362905;
        return r362915;
}

double f(double a, double b) {
        double r362916 = 1.0;
        double r362917 = sqrt(r362916);
        double r362918 = 2.0;
        double r362919 = pow(r362917, r362918);
        double r362920 = a;
        double r362921 = r362920 * r362920;
        double r362922 = b;
        double r362923 = r362922 * r362922;
        double r362924 = r362921 + r362923;
        double r362925 = sqrt(r362924);
        double r362926 = 2.0;
        double r362927 = r362926 * r362918;
        double r362928 = pow(r362925, r362927);
        double r362929 = r362919 * r362928;
        double r362930 = 4.0;
        double r362931 = 1.0;
        double r362932 = r362931 + r362920;
        double r362933 = r362921 * r362932;
        double r362934 = 3.0;
        double r362935 = r362934 * r362920;
        double r362936 = r362931 - r362935;
        double r362937 = r362923 * r362936;
        double r362938 = r362933 + r362937;
        double r362939 = r362930 * r362938;
        double r362940 = r362929 + r362939;
        double r362941 = r362940 - r362931;
        return r362941;
}

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. Using strategy rm
  3. Applied add-sqr-sqrt0.2

    \[\leadsto \left({\color{blue}{\left(\sqrt{a \cdot a + b \cdot b} \cdot \sqrt{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\]
  4. Applied unpow-prod-down0.2

    \[\leadsto \left(\color{blue}{{\left(\sqrt{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt{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\]
  5. Using strategy rm
  6. Applied *-un-lft-identity0.2

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

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

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

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

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

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

Reproduce

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