Average Error: 0.2 → 0.2
Time: 2.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 r347227 = a;
        double r347228 = r347227 * r347227;
        double r347229 = b;
        double r347230 = r347229 * r347229;
        double r347231 = r347228 + r347230;
        double r347232 = 2.0;
        double r347233 = pow(r347231, r347232);
        double r347234 = 4.0;
        double r347235 = r347234 * r347230;
        double r347236 = r347233 + r347235;
        double r347237 = 1.0;
        double r347238 = r347236 - r347237;
        return r347238;
}

double f(double a, double b) {
        double r347239 = a;
        double r347240 = r347239 * r347239;
        double r347241 = b;
        double r347242 = r347241 * r347241;
        double r347243 = r347240 + r347242;
        double r347244 = 2.0;
        double r347245 = pow(r347243, r347244);
        double r347246 = 4.0;
        double r347247 = r347246 * r347242;
        double r347248 = r347245 + r347247;
        double r347249 = 1.0;
        double r347250 = r347248 - r347249;
        return r347250;
}

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