\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\frac{\mathsf{fma}\left(\left(\frac{\pi}{b - a} \cdot \frac{1}{b + a}\right), \left(\frac{-1}{b}\right), \left(\frac{\frac{1}{\frac{b - a}{\pi}}}{a \cdot \left(b + a\right)}\right)\right)}{2}double f(double a, double b) {
double r3537264 = atan2(1.0, 0.0);
double r3537265 = 2.0;
double r3537266 = r3537264 / r3537265;
double r3537267 = 1.0;
double r3537268 = b;
double r3537269 = r3537268 * r3537268;
double r3537270 = a;
double r3537271 = r3537270 * r3537270;
double r3537272 = r3537269 - r3537271;
double r3537273 = r3537267 / r3537272;
double r3537274 = r3537266 * r3537273;
double r3537275 = r3537267 / r3537270;
double r3537276 = r3537267 / r3537268;
double r3537277 = r3537275 - r3537276;
double r3537278 = r3537274 * r3537277;
return r3537278;
}
double f(double a, double b) {
double r3537279 = atan2(1.0, 0.0);
double r3537280 = b;
double r3537281 = a;
double r3537282 = r3537280 - r3537281;
double r3537283 = r3537279 / r3537282;
double r3537284 = 1.0;
double r3537285 = r3537280 + r3537281;
double r3537286 = r3537284 / r3537285;
double r3537287 = r3537283 * r3537286;
double r3537288 = -1.0;
double r3537289 = r3537288 / r3537280;
double r3537290 = r3537282 / r3537279;
double r3537291 = r3537284 / r3537290;
double r3537292 = r3537281 * r3537285;
double r3537293 = r3537291 / r3537292;
double r3537294 = fma(r3537287, r3537289, r3537293);
double r3537295 = 2.0;
double r3537296 = r3537294 / r3537295;
return r3537296;
}



Bits error versus a



Bits error versus b
Initial program 14.6
Simplified14.6
rmApplied *-un-lft-identity14.6
Applied difference-of-squares14.6
Applied *-un-lft-identity14.6
Applied times-frac14.3
Applied times-frac10.0
Simplified10.0
rmApplied difference-of-squares5.0
Applied *-un-lft-identity5.0
Applied times-frac4.8
rmApplied frac-times4.7
Simplified4.7
rmApplied *-un-lft-identity4.7
Applied associate-/l*4.8
Final simplification4.8
herbie shell --seed 2019121 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))