\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\frac{\frac{\pi}{2}}{\left(b + a\right) \cdot \left(a \cdot \left(b - a\right)\right)} - \frac{\frac{\frac{\frac{\pi}{2}}{b + a}}{b}}{b - a}double f(double a, double b) {
double r1413953 = atan2(1.0, 0.0);
double r1413954 = 2.0;
double r1413955 = r1413953 / r1413954;
double r1413956 = 1.0;
double r1413957 = b;
double r1413958 = r1413957 * r1413957;
double r1413959 = a;
double r1413960 = r1413959 * r1413959;
double r1413961 = r1413958 - r1413960;
double r1413962 = r1413956 / r1413961;
double r1413963 = r1413955 * r1413962;
double r1413964 = r1413956 / r1413959;
double r1413965 = r1413956 / r1413957;
double r1413966 = r1413964 - r1413965;
double r1413967 = r1413963 * r1413966;
return r1413967;
}
double f(double a, double b) {
double r1413968 = atan2(1.0, 0.0);
double r1413969 = 2.0;
double r1413970 = r1413968 / r1413969;
double r1413971 = b;
double r1413972 = a;
double r1413973 = r1413971 + r1413972;
double r1413974 = r1413971 - r1413972;
double r1413975 = r1413972 * r1413974;
double r1413976 = r1413973 * r1413975;
double r1413977 = r1413970 / r1413976;
double r1413978 = r1413970 / r1413973;
double r1413979 = r1413978 / r1413971;
double r1413980 = r1413979 / r1413974;
double r1413981 = r1413977 - r1413980;
return r1413981;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.6
Simplified9.2
rmApplied associate-/l/4.7
rmApplied associate-/l/0.2
rmApplied div-inv0.3
Applied associate-/l*0.5
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019156 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))