Average Error: 0.2 → 0.2
Time: 6.1s
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(3 + 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(3 + 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(3 + 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(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r276230 = a;
        double r276231 = r276230 * r276230;
        double r276232 = b;
        double r276233 = r276232 * r276232;
        double r276234 = r276231 + r276233;
        double r276235 = 2.0;
        double r276236 = pow(r276234, r276235);
        double r276237 = 4.0;
        double r276238 = 1.0;
        double r276239 = r276238 - r276230;
        double r276240 = r276231 * r276239;
        double r276241 = 3.0;
        double r276242 = r276241 + r276230;
        double r276243 = r276233 * r276242;
        double r276244 = r276240 + r276243;
        double r276245 = r276237 * r276244;
        double r276246 = r276236 + r276245;
        double r276247 = r276246 - r276238;
        return r276247;
}

double f(double a, double b) {
        double r276248 = a;
        double r276249 = r276248 * r276248;
        double r276250 = b;
        double r276251 = r276250 * r276250;
        double r276252 = r276249 + r276251;
        double r276253 = 2.0;
        double r276254 = pow(r276252, r276253);
        double r276255 = 4.0;
        double r276256 = 1.0;
        double r276257 = r276256 - r276248;
        double r276258 = r276249 * r276257;
        double r276259 = 3.0;
        double r276260 = r276259 + r276248;
        double r276261 = r276251 * r276260;
        double r276262 = r276258 + r276261;
        double r276263 = r276255 * r276262;
        double r276264 = r276254 + r276263;
        double r276265 = r276264 - r276256;
        return r276265;
}

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(3 + 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(3 + a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2020018 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))