Average Error: 0.2 → 0.2
Time: 7.7s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1
double f(double a, double b) {
        double r195213 = a;
        double r195214 = r195213 * r195213;
        double r195215 = b;
        double r195216 = r195215 * r195215;
        double r195217 = r195214 + r195216;
        double r195218 = 2.0;
        double r195219 = pow(r195217, r195218);
        double r195220 = 4.0;
        double r195221 = 1.0;
        double r195222 = r195221 + r195213;
        double r195223 = r195214 * r195222;
        double r195224 = 3.0;
        double r195225 = r195224 * r195213;
        double r195226 = r195221 - r195225;
        double r195227 = r195216 * r195226;
        double r195228 = r195223 + r195227;
        double r195229 = r195220 * r195228;
        double r195230 = r195219 + r195229;
        double r195231 = r195230 - r195221;
        return r195231;
}

double f(double a, double b) {
        double r195232 = a;
        double r195233 = r195232 * r195232;
        double r195234 = b;
        double r195235 = r195234 * r195234;
        double r195236 = r195233 + r195235;
        double r195237 = 2.0;
        double r195238 = pow(r195236, r195237);
        double r195239 = 4.0;
        double r195240 = 1.0;
        double r195241 = r195240 + r195232;
        double r195242 = r195233 * r195241;
        double r195243 = 3.0;
        double r195244 = r195243 * r195232;
        double r195245 = r195240 - r195244;
        double r195246 = r195235 * r195245;
        double r195247 = r195242 + r195246;
        double r195248 = r195239 * r195247;
        double r195249 = r195238 + r195248;
        double r195250 = r195249 - r195240;
        return r195250;
}

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(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2019344 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (25)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))