Average Error: 0.2 → 0.2
Time: 24.9s
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 r151034 = a;
        double r151035 = r151034 * r151034;
        double r151036 = b;
        double r151037 = r151036 * r151036;
        double r151038 = r151035 + r151037;
        double r151039 = 2.0;
        double r151040 = pow(r151038, r151039);
        double r151041 = 4.0;
        double r151042 = r151041 * r151037;
        double r151043 = r151040 + r151042;
        double r151044 = 1.0;
        double r151045 = r151043 - r151044;
        return r151045;
}

double f(double a, double b) {
        double r151046 = a;
        double r151047 = r151046 * r151046;
        double r151048 = b;
        double r151049 = r151048 * r151048;
        double r151050 = r151047 + r151049;
        double r151051 = 2.0;
        double r151052 = pow(r151050, r151051);
        double r151053 = 4.0;
        double r151054 = r151053 * r151049;
        double r151055 = r151052 + r151054;
        double r151056 = 1.0;
        double r151057 = r151055 - r151056;
        return r151057;
}

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 2019199 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (* b b))) 1.0))