Average Error: 0.2 → 0.2
Time: 30.0s
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(3 + 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(3 + 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(3 + 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(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r216575 = a;
        double r216576 = r216575 * r216575;
        double r216577 = b;
        double r216578 = r216577 * r216577;
        double r216579 = r216576 + r216578;
        double r216580 = 2.0;
        double r216581 = pow(r216579, r216580);
        double r216582 = 4.0;
        double r216583 = 1.0;
        double r216584 = r216583 - r216575;
        double r216585 = r216576 * r216584;
        double r216586 = 3.0;
        double r216587 = r216586 + r216575;
        double r216588 = r216578 * r216587;
        double r216589 = r216585 + r216588;
        double r216590 = r216582 * r216589;
        double r216591 = r216581 + r216590;
        double r216592 = r216591 - r216583;
        return r216592;
}

double f(double a, double b) {
        double r216593 = a;
        double r216594 = r216593 * r216593;
        double r216595 = b;
        double r216596 = r216595 * r216595;
        double r216597 = r216594 + r216596;
        double r216598 = 2.0;
        double r216599 = pow(r216597, r216598);
        double r216600 = 4.0;
        double r216601 = 1.0;
        double r216602 = r216601 - r216593;
        double r216603 = r216594 * r216602;
        double r216604 = 3.0;
        double r216605 = r216604 + r216593;
        double r216606 = r216596 * r216605;
        double r216607 = r216603 + r216606;
        double r216608 = r216600 * r216607;
        double r216609 = r216599 + r216608;
        double r216610 = r216609 - r216601;
        return r216610;
}

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(3 + 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(3 + a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2019199 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))