Average Error: 0.2 → 0.2
Time: 4.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 r283114 = a;
        double r283115 = r283114 * r283114;
        double r283116 = b;
        double r283117 = r283116 * r283116;
        double r283118 = r283115 + r283117;
        double r283119 = 2.0;
        double r283120 = pow(r283118, r283119);
        double r283121 = 4.0;
        double r283122 = r283121 * r283117;
        double r283123 = r283120 + r283122;
        double r283124 = 1.0;
        double r283125 = r283123 - r283124;
        return r283125;
}

double f(double a, double b) {
        double r283126 = a;
        double r283127 = r283126 * r283126;
        double r283128 = b;
        double r283129 = r283128 * r283128;
        double r283130 = r283127 + r283129;
        double r283131 = 2.0;
        double r283132 = pow(r283130, r283131);
        double r283133 = 4.0;
        double r283134 = r283133 * r283129;
        double r283135 = r283132 + r283134;
        double r283136 = 1.0;
        double r283137 = r283135 - r283136;
        return r283137;
}

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