Average Error: 0.2 → 0.2
Time: 19.5s
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 r101268 = a;
        double r101269 = r101268 * r101268;
        double r101270 = b;
        double r101271 = r101270 * r101270;
        double r101272 = r101269 + r101271;
        double r101273 = 2.0;
        double r101274 = pow(r101272, r101273);
        double r101275 = 4.0;
        double r101276 = 1.0;
        double r101277 = r101276 + r101268;
        double r101278 = r101269 * r101277;
        double r101279 = 3.0;
        double r101280 = r101279 * r101268;
        double r101281 = r101276 - r101280;
        double r101282 = r101271 * r101281;
        double r101283 = r101278 + r101282;
        double r101284 = r101275 * r101283;
        double r101285 = r101274 + r101284;
        double r101286 = r101285 - r101276;
        return r101286;
}

double f(double a, double b) {
        double r101287 = a;
        double r101288 = r101287 * r101287;
        double r101289 = b;
        double r101290 = r101289 * r101289;
        double r101291 = r101288 + r101290;
        double r101292 = 2.0;
        double r101293 = pow(r101291, r101292);
        double r101294 = 4.0;
        double r101295 = 1.0;
        double r101296 = r101295 + r101287;
        double r101297 = r101288 * r101296;
        double r101298 = 3.0;
        double r101299 = r101298 * r101287;
        double r101300 = r101295 - r101299;
        double r101301 = r101290 * r101300;
        double r101302 = r101297 + r101301;
        double r101303 = r101294 * r101302;
        double r101304 = r101293 + r101303;
        double r101305 = r101304 - r101295;
        return r101305;
}

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