Average Error: 0.2 → 0.2
Time: 6.9s
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 r329260 = a;
        double r329261 = r329260 * r329260;
        double r329262 = b;
        double r329263 = r329262 * r329262;
        double r329264 = r329261 + r329263;
        double r329265 = 2.0;
        double r329266 = pow(r329264, r329265);
        double r329267 = 4.0;
        double r329268 = 1.0;
        double r329269 = r329268 + r329260;
        double r329270 = r329261 * r329269;
        double r329271 = 3.0;
        double r329272 = r329271 * r329260;
        double r329273 = r329268 - r329272;
        double r329274 = r329263 * r329273;
        double r329275 = r329270 + r329274;
        double r329276 = r329267 * r329275;
        double r329277 = r329266 + r329276;
        double r329278 = r329277 - r329268;
        return r329278;
}

double f(double a, double b) {
        double r329279 = a;
        double r329280 = r329279 * r329279;
        double r329281 = b;
        double r329282 = r329281 * r329281;
        double r329283 = r329280 + r329282;
        double r329284 = 2.0;
        double r329285 = pow(r329283, r329284);
        double r329286 = 4.0;
        double r329287 = 1.0;
        double r329288 = r329287 + r329279;
        double r329289 = r329280 * r329288;
        double r329290 = 3.0;
        double r329291 = r329290 * r329279;
        double r329292 = r329287 - r329291;
        double r329293 = r329282 * r329292;
        double r329294 = r329289 + r329293;
        double r329295 = r329286 * r329294;
        double r329296 = r329285 + r329295;
        double r329297 = r329296 - r329287;
        return r329297;
}

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 2020081 
(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))