\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\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1double f(double a, double b) {
double r2913946 = a;
double r2913947 = r2913946 * r2913946;
double r2913948 = b;
double r2913949 = r2913948 * r2913948;
double r2913950 = r2913947 + r2913949;
double r2913951 = 2.0;
double r2913952 = pow(r2913950, r2913951);
double r2913953 = 4.0;
double r2913954 = 1.0;
double r2913955 = r2913954 + r2913946;
double r2913956 = r2913947 * r2913955;
double r2913957 = 3.0;
double r2913958 = r2913957 * r2913946;
double r2913959 = r2913954 - r2913958;
double r2913960 = r2913949 * r2913959;
double r2913961 = r2913956 + r2913960;
double r2913962 = r2913953 * r2913961;
double r2913963 = r2913952 + r2913962;
double r2913964 = r2913963 - r2913954;
return r2913964;
}
double f(double a, double b) {
double r2913965 = a;
double r2913966 = r2913965 * r2913965;
double r2913967 = b;
double r2913968 = r2913967 * r2913967;
double r2913969 = r2913966 + r2913968;
double r2913970 = 2.0;
double r2913971 = pow(r2913969, r2913970);
double r2913972 = 1.0;
double r2913973 = r2913965 + r2913972;
double r2913974 = r2913966 * r2913973;
double r2913975 = 3.0;
double r2913976 = r2913975 * r2913965;
double r2913977 = r2913972 - r2913976;
double r2913978 = r2913968 * r2913977;
double r2913979 = r2913974 + r2913978;
double r2913980 = 4.0;
double r2913981 = r2913979 * r2913980;
double r2913982 = r2913971 + r2913981;
double r2913983 = sqrt(r2913982);
double r2913984 = r2913983 * r2913983;
double r2913985 = r2913984 - r2913972;
return r2913985;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2019155 +o rules:numerics
(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))