Average Error: 0.2 → 0.2
Time: 13.3s
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 r279478 = a;
        double r279479 = r279478 * r279478;
        double r279480 = b;
        double r279481 = r279480 * r279480;
        double r279482 = r279479 + r279481;
        double r279483 = 2.0;
        double r279484 = pow(r279482, r279483);
        double r279485 = 4.0;
        double r279486 = r279485 * r279481;
        double r279487 = r279484 + r279486;
        double r279488 = 1.0;
        double r279489 = r279487 - r279488;
        return r279489;
}

double f(double a, double b) {
        double r279490 = a;
        double r279491 = r279490 * r279490;
        double r279492 = b;
        double r279493 = r279492 * r279492;
        double r279494 = r279491 + r279493;
        double r279495 = 2.0;
        double r279496 = pow(r279494, r279495);
        double r279497 = 4.0;
        double r279498 = r279497 * r279493;
        double r279499 = r279496 + r279498;
        double r279500 = 1.0;
        double r279501 = r279499 - r279500;
        return r279501;
}

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