Average Error: 0.2 → 0.2
Time: 1.3m
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left(\left(b \cdot b\right) \cdot 4 + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left(\left(b \cdot b\right) \cdot 4 + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1
double f(double a, double b) {
        double r109156437 = a;
        double r109156438 = r109156437 * r109156437;
        double r109156439 = b;
        double r109156440 = r109156439 * r109156439;
        double r109156441 = r109156438 + r109156440;
        double r109156442 = 2.0;
        double r109156443 = pow(r109156441, r109156442);
        double r109156444 = 4.0;
        double r109156445 = r109156444 * r109156440;
        double r109156446 = r109156443 + r109156445;
        double r109156447 = 1.0;
        double r109156448 = r109156446 - r109156447;
        return r109156448;
}

double f(double a, double b) {
        double r109156449 = b;
        double r109156450 = r109156449 * r109156449;
        double r109156451 = 4.0;
        double r109156452 = r109156450 * r109156451;
        double r109156453 = a;
        double r109156454 = r109156453 * r109156453;
        double r109156455 = r109156454 + r109156450;
        double r109156456 = 2.0;
        double r109156457 = pow(r109156455, r109156456);
        double r109156458 = r109156452 + r109156457;
        double r109156459 = 1.0;
        double r109156460 = r109156458 - r109156459;
        return r109156460;
}

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(b \cdot b\right) \cdot 4 + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1\]

Reproduce

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