Average Error: 0.2 → 0.1
Time: 6.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\]
\[\mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\mathsf{hypot}\left(a, b\right)\right)}^{\left(2 \cdot \frac{2}{4}\right)}\right) \cdot {\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)} - 1\right)\]
\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
\mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\mathsf{hypot}\left(a, b\right)\right)}^{\left(2 \cdot \frac{2}{4}\right)}\right) \cdot {\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)} - 1\right)
double f(double a, double b) {
        double r214901 = a;
        double r214902 = r214901 * r214901;
        double r214903 = b;
        double r214904 = r214903 * r214903;
        double r214905 = r214902 + r214904;
        double r214906 = 2.0;
        double r214907 = pow(r214905, r214906);
        double r214908 = 4.0;
        double r214909 = 1.0;
        double r214910 = r214909 + r214901;
        double r214911 = r214902 * r214910;
        double r214912 = 3.0;
        double r214913 = r214912 * r214901;
        double r214914 = r214909 - r214913;
        double r214915 = r214904 * r214914;
        double r214916 = r214911 + r214915;
        double r214917 = r214908 * r214916;
        double r214918 = r214907 + r214917;
        double r214919 = r214918 - r214909;
        return r214919;
}

double f(double a, double b) {
        double r214920 = 4.0;
        double r214921 = a;
        double r214922 = r214921 * r214921;
        double r214923 = 1.0;
        double r214924 = r214923 + r214921;
        double r214925 = b;
        double r214926 = r214925 * r214925;
        double r214927 = 3.0;
        double r214928 = r214927 * r214921;
        double r214929 = r214923 - r214928;
        double r214930 = r214926 * r214929;
        double r214931 = fma(r214922, r214924, r214930);
        double r214932 = fma(r214921, r214921, r214926);
        double r214933 = 2.0;
        double r214934 = 2.0;
        double r214935 = r214933 / r214934;
        double r214936 = pow(r214932, r214935);
        double r214937 = hypot(r214921, r214925);
        double r214938 = 4.0;
        double r214939 = r214933 / r214938;
        double r214940 = r214934 * r214939;
        double r214941 = pow(r214937, r214940);
        double r214942 = r214936 * r214941;
        double r214943 = sqrt(r214932);
        double r214944 = pow(r214943, r214935);
        double r214945 = r214942 * r214944;
        double r214946 = r214945 - r214923;
        double r214947 = fma(r214920, r214931, r214946);
        return r214947;
}

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}{\mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), {\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)}\]
  3. Using strategy rm
  4. Applied sqr-pow0.2

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \color{blue}{{\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)}} - 1\right)\]
  5. Simplified0.2

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \color{blue}{{\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}} \cdot {\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)} - 1\right)\]
  6. Simplified0.2

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

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot {\color{blue}{\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)} \cdot \sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}}^{\left(\frac{2}{2}\right)} - 1\right)\]
  9. Applied unpow-prod-down0.2

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot \color{blue}{\left({\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)}\right)} - 1\right)\]
  10. Applied associate-*r*0.1

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

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \color{blue}{\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\mathsf{hypot}\left(a, b\right)\right)}^{\left(2 \cdot \frac{2}{4}\right)}\right)} \cdot {\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)} - 1\right)\]
  12. Final simplification0.1

    \[\leadsto \mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), \left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\mathsf{hypot}\left(a, b\right)\right)}^{\left(2 \cdot \frac{2}{4}\right)}\right) \cdot {\left(\sqrt{\mathsf{fma}\left(a, a, b \cdot b\right)}\right)}^{\left(\frac{2}{2}\right)} - 1\right)\]

Reproduce

herbie shell --seed 2019344 +o rules:numerics
(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))