\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(1 \cdot \left(a \cdot a\right) + \left(-{a}^{3}\right)\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r208591 = a;
double r208592 = r208591 * r208591;
double r208593 = b;
double r208594 = r208593 * r208593;
double r208595 = r208592 + r208594;
double r208596 = 2.0;
double r208597 = pow(r208595, r208596);
double r208598 = 4.0;
double r208599 = 1.0;
double r208600 = r208599 - r208591;
double r208601 = r208592 * r208600;
double r208602 = 3.0;
double r208603 = r208602 + r208591;
double r208604 = r208594 * r208603;
double r208605 = r208601 + r208604;
double r208606 = r208598 * r208605;
double r208607 = r208597 + r208606;
double r208608 = r208607 - r208599;
return r208608;
}
double f(double a, double b) {
double r208609 = a;
double r208610 = r208609 * r208609;
double r208611 = b;
double r208612 = r208611 * r208611;
double r208613 = r208610 + r208612;
double r208614 = 2.0;
double r208615 = pow(r208613, r208614);
double r208616 = 4.0;
double r208617 = 1.0;
double r208618 = r208617 * r208610;
double r208619 = 3.0;
double r208620 = pow(r208609, r208619);
double r208621 = -r208620;
double r208622 = r208618 + r208621;
double r208623 = 3.0;
double r208624 = r208623 + r208609;
double r208625 = r208612 * r208624;
double r208626 = r208622 + r208625;
double r208627 = r208616 * r208626;
double r208628 = r208615 + r208627;
double r208629 = r208628 - r208617;
return r208629;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019347 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))