Average Error: 0.2 → 0.2
Time: 6.9s
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 r275558 = a;
        double r275559 = r275558 * r275558;
        double r275560 = b;
        double r275561 = r275560 * r275560;
        double r275562 = r275559 + r275561;
        double r275563 = 2.0;
        double r275564 = pow(r275562, r275563);
        double r275565 = 4.0;
        double r275566 = 1.0;
        double r275567 = r275566 + r275558;
        double r275568 = r275559 * r275567;
        double r275569 = 3.0;
        double r275570 = r275569 * r275558;
        double r275571 = r275566 - r275570;
        double r275572 = r275561 * r275571;
        double r275573 = r275568 + r275572;
        double r275574 = r275565 * r275573;
        double r275575 = r275564 + r275574;
        double r275576 = r275575 - r275566;
        return r275576;
}

double f(double a, double b) {
        double r275577 = a;
        double r275578 = r275577 * r275577;
        double r275579 = b;
        double r275580 = r275579 * r275579;
        double r275581 = r275578 + r275580;
        double r275582 = 2.0;
        double r275583 = pow(r275581, r275582);
        double r275584 = 4.0;
        double r275585 = 1.0;
        double r275586 = r275585 + r275577;
        double r275587 = r275578 * r275586;
        double r275588 = 3.0;
        double r275589 = r275588 * r275577;
        double r275590 = r275585 - r275589;
        double r275591 = r275580 * r275590;
        double r275592 = r275587 + r275591;
        double r275593 = r275584 * r275592;
        double r275594 = r275583 + r275593;
        double r275595 = r275594 - r275585;
        return r275595;
}

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 2019354 
(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))