Average Error: 0.2 → 0.2
Time: 4.6s
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 r352553 = a;
        double r352554 = r352553 * r352553;
        double r352555 = b;
        double r352556 = r352555 * r352555;
        double r352557 = r352554 + r352556;
        double r352558 = 2.0;
        double r352559 = pow(r352557, r352558);
        double r352560 = 4.0;
        double r352561 = r352560 * r352556;
        double r352562 = r352559 + r352561;
        double r352563 = 1.0;
        double r352564 = r352562 - r352563;
        return r352564;
}

double f(double a, double b) {
        double r352565 = a;
        double r352566 = r352565 * r352565;
        double r352567 = b;
        double r352568 = r352567 * r352567;
        double r352569 = r352566 + r352568;
        double r352570 = 2.0;
        double r352571 = pow(r352569, r352570);
        double r352572 = 4.0;
        double r352573 = r352572 * r352568;
        double r352574 = r352571 + r352573;
        double r352575 = 1.0;
        double r352576 = r352574 - r352575;
        return r352576;
}

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