Average Error: 0.2 → 0.2
Time: 15.6s
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 r222226 = a;
        double r222227 = r222226 * r222226;
        double r222228 = b;
        double r222229 = r222228 * r222228;
        double r222230 = r222227 + r222229;
        double r222231 = 2.0;
        double r222232 = pow(r222230, r222231);
        double r222233 = 4.0;
        double r222234 = 1.0;
        double r222235 = r222234 + r222226;
        double r222236 = r222227 * r222235;
        double r222237 = 3.0;
        double r222238 = r222237 * r222226;
        double r222239 = r222234 - r222238;
        double r222240 = r222229 * r222239;
        double r222241 = r222236 + r222240;
        double r222242 = r222233 * r222241;
        double r222243 = r222232 + r222242;
        double r222244 = r222243 - r222234;
        return r222244;
}

double f(double a, double b) {
        double r222245 = a;
        double r222246 = r222245 * r222245;
        double r222247 = b;
        double r222248 = r222247 * r222247;
        double r222249 = r222246 + r222248;
        double r222250 = 2.0;
        double r222251 = pow(r222249, r222250);
        double r222252 = 4.0;
        double r222253 = 1.0;
        double r222254 = r222253 + r222245;
        double r222255 = r222246 * r222254;
        double r222256 = 3.0;
        double r222257 = r222256 * r222245;
        double r222258 = r222253 - r222257;
        double r222259 = r222248 * r222258;
        double r222260 = r222255 + r222259;
        double r222261 = r222252 * r222260;
        double r222262 = r222251 + r222261;
        double r222263 = r222262 - r222253;
        return r222263;
}

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