Average Error: 0.2 → 0.2
Time: 24.3s
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\]
\[\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\]
\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
\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
double f(double a, double b) {
        double r186262 = a;
        double r186263 = r186262 * r186262;
        double r186264 = b;
        double r186265 = r186264 * r186264;
        double r186266 = r186263 + r186265;
        double r186267 = 2.0;
        double r186268 = pow(r186266, r186267);
        double r186269 = 4.0;
        double r186270 = 1.0;
        double r186271 = r186270 + r186262;
        double r186272 = r186263 * r186271;
        double r186273 = 3.0;
        double r186274 = r186273 * r186262;
        double r186275 = r186270 - r186274;
        double r186276 = r186265 * r186275;
        double r186277 = r186272 + r186276;
        double r186278 = r186269 * r186277;
        double r186279 = r186268 + r186278;
        double r186280 = r186279 - r186270;
        return r186280;
}

double f(double a, double b) {
        double r186281 = a;
        double r186282 = r186281 * r186281;
        double r186283 = b;
        double r186284 = r186283 * r186283;
        double r186285 = r186282 + r186284;
        double r186286 = 2.0;
        double r186287 = pow(r186285, r186286);
        double r186288 = 4.0;
        double r186289 = 1.0;
        double r186290 = r186289 + r186281;
        double r186291 = r186282 * r186290;
        double r186292 = 3.0;
        double r186293 = r186292 * r186281;
        double r186294 = r186289 - r186293;
        double r186295 = r186284 * r186294;
        double r186296 = r186291 + r186295;
        double r186297 = r186288 * r186296;
        double r186298 = r186287 + r186297;
        double r186299 = r186298 - r186289;
        return r186299;
}

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(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \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\]

Reproduce

herbie shell --seed 2019323 
(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))