Average Error: 0.2 → 0.1
Time: 5.6s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\mathsf{fma}\left(4 \cdot b, b, \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(b \cdot b\right)\right) - 1
\mathsf{fma}\left(4 \cdot b, b, \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 r466275 = a;
        double r466276 = r466275 * r466275;
        double r466277 = b;
        double r466278 = r466277 * r466277;
        double r466279 = r466276 + r466278;
        double r466280 = 2.0;
        double r466281 = pow(r466279, r466280);
        double r466282 = 4.0;
        double r466283 = r466282 * r466278;
        double r466284 = r466281 + r466283;
        double r466285 = 1.0;
        double r466286 = r466284 - r466285;
        return r466286;
}

double f(double a, double b) {
        double r466287 = 4.0;
        double r466288 = b;
        double r466289 = r466287 * r466288;
        double r466290 = a;
        double r466291 = r466288 * r466288;
        double r466292 = fma(r466290, r466290, r466291);
        double r466293 = 2.0;
        double r466294 = 2.0;
        double r466295 = r466293 / r466294;
        double r466296 = pow(r466292, r466295);
        double r466297 = hypot(r466290, r466288);
        double r466298 = 4.0;
        double r466299 = r466293 / r466298;
        double r466300 = r466294 * r466299;
        double r466301 = pow(r466297, r466300);
        double r466302 = r466296 * r466301;
        double r466303 = sqrt(r466292);
        double r466304 = pow(r466303, r466295);
        double r466305 = r466302 * r466304;
        double r466306 = 1.0;
        double r466307 = r466305 - r466306;
        double r466308 = fma(r466289, r466288, r466307);
        return r466308;
}

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(4 \cdot b, b, {\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 \cdot b, b, \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 \cdot b, b, \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 \cdot b, b, {\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 \cdot b, b, {\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 \cdot b, b, {\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 \cdot b, b, \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 \cdot b, b, \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 \cdot b, b, \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 2020046 +o rules:numerics
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))