\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(\left(\left(\left(b \cdot a\right) \cdot \left(b \cdot a\right)\right) \cdot 2 + {b}^{4}\right) + {a}^{4}\right) - 1\right) + \left(\left(a \cdot \left(a \cdot a + a\right) + b \cdot b\right) - 3 \cdot \left(\left(b \cdot b\right) \cdot a\right)\right) \cdot 4double f(double a, double b) {
double r4093962 = a;
double r4093963 = r4093962 * r4093962;
double r4093964 = b;
double r4093965 = r4093964 * r4093964;
double r4093966 = r4093963 + r4093965;
double r4093967 = 2.0;
double r4093968 = pow(r4093966, r4093967);
double r4093969 = 4.0;
double r4093970 = 1.0;
double r4093971 = r4093970 + r4093962;
double r4093972 = r4093963 * r4093971;
double r4093973 = 3.0;
double r4093974 = r4093973 * r4093962;
double r4093975 = r4093970 - r4093974;
double r4093976 = r4093965 * r4093975;
double r4093977 = r4093972 + r4093976;
double r4093978 = r4093969 * r4093977;
double r4093979 = r4093968 + r4093978;
double r4093980 = r4093979 - r4093970;
return r4093980;
}
double f(double a, double b) {
double r4093981 = b;
double r4093982 = a;
double r4093983 = r4093981 * r4093982;
double r4093984 = r4093983 * r4093983;
double r4093985 = 2.0;
double r4093986 = r4093984 * r4093985;
double r4093987 = 4.0;
double r4093988 = pow(r4093981, r4093987);
double r4093989 = r4093986 + r4093988;
double r4093990 = pow(r4093982, r4093987);
double r4093991 = r4093989 + r4093990;
double r4093992 = 1.0;
double r4093993 = r4093991 - r4093992;
double r4093994 = r4093982 * r4093982;
double r4093995 = r4093994 + r4093982;
double r4093996 = r4093982 * r4093995;
double r4093997 = r4093981 * r4093981;
double r4093998 = r4093996 + r4093997;
double r4093999 = 3.0;
double r4094000 = r4093997 * r4093982;
double r4094001 = r4093999 * r4094000;
double r4094002 = r4093998 - r4094001;
double r4094003 = r4094002 * r4093987;
double r4094004 = r4093993 + r4094003;
return r4094004;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019134
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))