\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{\frac{1}{b + a}}{\frac{a}{\pi} \cdot \left(b - a\right)} + \frac{\frac{\pi}{b + a}}{b - a} \cdot \frac{-1}{b}}{2}double f(double a, double b) {
double r2076063 = atan2(1.0, 0.0);
double r2076064 = 2.0;
double r2076065 = r2076063 / r2076064;
double r2076066 = 1.0;
double r2076067 = b;
double r2076068 = r2076067 * r2076067;
double r2076069 = a;
double r2076070 = r2076069 * r2076069;
double r2076071 = r2076068 - r2076070;
double r2076072 = r2076066 / r2076071;
double r2076073 = r2076065 * r2076072;
double r2076074 = r2076066 / r2076069;
double r2076075 = r2076066 / r2076067;
double r2076076 = r2076074 - r2076075;
double r2076077 = r2076073 * r2076076;
return r2076077;
}
double f(double a, double b) {
double r2076078 = 1.0;
double r2076079 = b;
double r2076080 = a;
double r2076081 = r2076079 + r2076080;
double r2076082 = r2076078 / r2076081;
double r2076083 = atan2(1.0, 0.0);
double r2076084 = r2076080 / r2076083;
double r2076085 = r2076079 - r2076080;
double r2076086 = r2076084 * r2076085;
double r2076087 = r2076082 / r2076086;
double r2076088 = r2076083 / r2076081;
double r2076089 = r2076088 / r2076085;
double r2076090 = -1.0;
double r2076091 = r2076090 / r2076079;
double r2076092 = r2076089 * r2076091;
double r2076093 = r2076087 + r2076092;
double r2076094 = 2.0;
double r2076095 = r2076093 / r2076094;
return r2076095;
}



Bits error versus a



Bits error versus b
Results
Initial program 13.8
Simplified13.8
rmApplied difference-of-squares13.8
Applied *-un-lft-identity13.8
Applied times-frac13.5
Applied associate-/l*9.4
rmApplied difference-of-squares4.6
Applied associate-/r*4.4
rmApplied associate-/r/4.4
rmApplied fma-udef4.4
Final simplification4.4
herbie shell --seed 2019124 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))