Average Error: 0.2 → 0.2
Time: 12.2s
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 r121062 = a;
        double r121063 = r121062 * r121062;
        double r121064 = b;
        double r121065 = r121064 * r121064;
        double r121066 = r121063 + r121065;
        double r121067 = 2.0;
        double r121068 = pow(r121066, r121067);
        double r121069 = 4.0;
        double r121070 = r121069 * r121065;
        double r121071 = r121068 + r121070;
        double r121072 = 1.0;
        double r121073 = r121071 - r121072;
        return r121073;
}

double f(double a, double b) {
        double r121074 = a;
        double r121075 = r121074 * r121074;
        double r121076 = b;
        double r121077 = r121076 * r121076;
        double r121078 = r121075 + r121077;
        double r121079 = 2.0;
        double r121080 = pow(r121078, r121079);
        double r121081 = 4.0;
        double r121082 = r121081 * r121077;
        double r121083 = r121080 + r121082;
        double r121084 = 1.0;
        double r121085 = r121083 - r121084;
        return r121085;
}

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 2019212 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))