Average Error: 0.2 → 0.2
Time: 11.7s
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, \left(\sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}\right) \cdot \sqrt[3]{\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)}^{2}\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
\mathsf{fma}\left(4, \left(\sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}\right) \cdot \sqrt[3]{\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)}^{2}\right) - 1
double f(double a, double b) {
        double r164152 = a;
        double r164153 = r164152 * r164152;
        double r164154 = b;
        double r164155 = r164154 * r164154;
        double r164156 = r164153 + r164155;
        double r164157 = 2.0;
        double r164158 = pow(r164156, r164157);
        double r164159 = 4.0;
        double r164160 = 1.0;
        double r164161 = r164160 + r164152;
        double r164162 = r164153 * r164161;
        double r164163 = 3.0;
        double r164164 = r164163 * r164152;
        double r164165 = r164160 - r164164;
        double r164166 = r164155 * r164165;
        double r164167 = r164162 + r164166;
        double r164168 = r164159 * r164167;
        double r164169 = r164158 + r164168;
        double r164170 = r164169 - r164160;
        return r164170;
}

double f(double a, double b) {
        double r164171 = 4.0;
        double r164172 = a;
        double r164173 = r164172 * r164172;
        double r164174 = 1.0;
        double r164175 = r164174 + r164172;
        double r164176 = b;
        double r164177 = r164176 * r164176;
        double r164178 = 3.0;
        double r164179 = r164178 * r164172;
        double r164180 = r164174 - r164179;
        double r164181 = r164177 * r164180;
        double r164182 = fma(r164173, r164175, r164181);
        double r164183 = cbrt(r164182);
        double r164184 = r164183 * r164183;
        double r164185 = r164184 * r164183;
        double r164186 = fma(r164172, r164172, r164177);
        double r164187 = 2.0;
        double r164188 = pow(r164186, r164187);
        double r164189 = fma(r164171, r164185, r164188);
        double r164190 = r164189 - r164174;
        return r164190;
}

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

    \[\leadsto \mathsf{fma}\left(4, \color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)}\right) \cdot \sqrt[3]{\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)}^{2}\right) - 1\]
  5. Final simplification0.2

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

Reproduce

herbie shell --seed 2020045 +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))