Average Error: 0.2 → 0.2
Time: 5.6s
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(3 + a\right)\right)\right) - 1\]
\[\sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right)} \cdot \sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + 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(3 + a\right)\right)\right) - 1
\sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right)} \cdot \sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right)} - 1
double f(double a, double b) {
        double r273843 = a;
        double r273844 = r273843 * r273843;
        double r273845 = b;
        double r273846 = r273845 * r273845;
        double r273847 = r273844 + r273846;
        double r273848 = 2.0;
        double r273849 = pow(r273847, r273848);
        double r273850 = 4.0;
        double r273851 = 1.0;
        double r273852 = r273851 - r273843;
        double r273853 = r273844 * r273852;
        double r273854 = 3.0;
        double r273855 = r273854 + r273843;
        double r273856 = r273846 * r273855;
        double r273857 = r273853 + r273856;
        double r273858 = r273850 * r273857;
        double r273859 = r273849 + r273858;
        double r273860 = r273859 - r273851;
        return r273860;
}

double f(double a, double b) {
        double r273861 = a;
        double r273862 = b;
        double r273863 = r273862 * r273862;
        double r273864 = fma(r273861, r273861, r273863);
        double r273865 = 2.0;
        double r273866 = 2.0;
        double r273867 = r273865 / r273866;
        double r273868 = pow(r273864, r273867);
        double r273869 = 4.0;
        double r273870 = r273861 * r273861;
        double r273871 = 1.0;
        double r273872 = r273871 - r273861;
        double r273873 = r273870 * r273872;
        double r273874 = 3.0;
        double r273875 = r273874 + r273861;
        double r273876 = r273863 * r273875;
        double r273877 = r273873 + r273876;
        double r273878 = r273869 * r273877;
        double r273879 = fma(r273868, r273868, r273878);
        double r273880 = sqrt(r273879);
        double r273881 = r273880 * r273880;
        double r273882 = r273881 - r273871;
        return r273882;
}

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(3 + a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied *-un-lft-identity0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{\color{blue}{\left(1 \cdot 2\right)}} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  4. Applied pow-unpow0.2

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

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

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

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

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

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

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))