Average Error: 0.2 → 0.2
Time: 10.5s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
double f(double a, double b) {
        double r154241 = a;
        double r154242 = r154241 * r154241;
        double r154243 = b;
        double r154244 = r154243 * r154243;
        double r154245 = r154242 + r154244;
        double r154246 = 2.0;
        double r154247 = pow(r154245, r154246);
        double r154248 = 4.0;
        double r154249 = r154248 * r154244;
        double r154250 = r154247 + r154249;
        double r154251 = 1.0;
        double r154252 = r154250 - r154251;
        return r154252;
}

double f(double a, double b) {
        double r154253 = a;
        double r154254 = r154253 * r154253;
        double r154255 = b;
        double r154256 = r154255 * r154255;
        double r154257 = r154254 + r154256;
        double r154258 = 2.0;
        double r154259 = pow(r154257, r154258);
        double r154260 = 4.0;
        double r154261 = r154260 * r154256;
        double r154262 = r154259 + r154261;
        double r154263 = 1.0;
        double r154264 = r154262 - r154263;
        return r154264;
}

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(b \cdot b\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]

Reproduce

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