Average Error: 0.2 → 0.1
Time: 43.4s
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\]
\[\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right) + \left(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\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
\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right) + \left(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\right)\right) - 1
double f(double a, double b) {
        double r43725273 = a;
        double r43725274 = r43725273 * r43725273;
        double r43725275 = b;
        double r43725276 = r43725275 * r43725275;
        double r43725277 = r43725274 + r43725276;
        double r43725278 = 2.0;
        double r43725279 = pow(r43725277, r43725278);
        double r43725280 = 4.0;
        double r43725281 = 1.0;
        double r43725282 = r43725281 - r43725273;
        double r43725283 = r43725274 * r43725282;
        double r43725284 = 3.0;
        double r43725285 = r43725284 + r43725273;
        double r43725286 = r43725276 * r43725285;
        double r43725287 = r43725283 + r43725286;
        double r43725288 = r43725280 * r43725287;
        double r43725289 = r43725279 + r43725288;
        double r43725290 = r43725289 - r43725281;
        return r43725290;
}

double f(double a, double b) {
        double r43725291 = 4.0;
        double r43725292 = a;
        double r43725293 = r43725292 * r43725292;
        double r43725294 = 1.0;
        double r43725295 = r43725294 - r43725292;
        double r43725296 = r43725293 * r43725295;
        double r43725297 = b;
        double r43725298 = r43725297 * r43725297;
        double r43725299 = 3.0;
        double r43725300 = r43725299 + r43725292;
        double r43725301 = r43725298 * r43725300;
        double r43725302 = r43725296 + r43725301;
        double r43725303 = r43725291 * r43725302;
        double r43725304 = 2.0;
        double r43725305 = r43725304 * r43725293;
        double r43725306 = r43725305 + r43725298;
        double r43725307 = r43725297 * r43725306;
        double r43725308 = r43725307 * r43725297;
        double r43725309 = pow(r43725292, r43725291);
        double r43725310 = r43725308 + r43725309;
        double r43725311 = r43725303 + r43725310;
        double r43725312 = r43725311 - r43725294;
        return r43725312;
}

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(3 + a\right)\right)\right) - 1\]
  2. Taylor expanded around 0 0.0

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

    \[\leadsto \left(\color{blue}{\left(\left(a \cdot a\right) \cdot \left(a \cdot a\right) + \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) \cdot \left(b \cdot b\right)\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. Using strategy rm
  5. Applied associate-*r*0.2

    \[\leadsto \left(\left(\left(a \cdot a\right) \cdot \left(a \cdot a\right) + \color{blue}{\left(\left(2 \cdot \left(a \cdot a\right) + b \cdot b\right) \cdot b\right) \cdot b}\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\]
  6. Taylor expanded around inf 0.1

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

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

Reproduce

herbie shell --seed 2019121 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))