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 r189226 = a;
        double r189227 = r189226 * r189226;
        double r189228 = b;
        double r189229 = r189228 * r189228;
        double r189230 = r189227 + r189229;
        double r189231 = 2.0;
        double r189232 = pow(r189230, r189231);
        double r189233 = 4.0;
        double r189234 = 1.0;
        double r189235 = r189234 + r189226;
        double r189236 = r189227 * r189235;
        double r189237 = 3.0;
        double r189238 = r189237 * r189226;
        double r189239 = r189234 - r189238;
        double r189240 = r189229 * r189239;
        double r189241 = r189236 + r189240;
        double r189242 = r189233 * r189241;
        double r189243 = r189232 + r189242;
        double r189244 = r189243 - r189234;
        return r189244;
}

double f(double a, double b) {
        double r189245 = a;
        double r189246 = r189245 * r189245;
        double r189247 = b;
        double r189248 = r189247 * r189247;
        double r189249 = r189246 + r189248;
        double r189250 = 2.0;
        double r189251 = pow(r189249, r189250);
        double r189252 = 4.0;
        double r189253 = 1.0;
        double r189254 = r189253 + r189245;
        double r189255 = r189246 * r189254;
        double r189256 = 3.0;
        double r189257 = r189256 * r189245;
        double r189258 = r189253 - r189257;
        double r189259 = r189248 * r189258;
        double r189260 = r189255 + r189259;
        double r189261 = r189252 * r189260;
        double r189262 = r189251 + r189261;
        double r189263 = r189262 - r189253;
        return r189263;
}

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