\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\frac{0.5 \cdot \frac{\pi}{a \cdot b}}{b + a}double f(double a, double b) {
double r43010 = atan2(1.0, 0.0);
double r43011 = 2.0;
double r43012 = r43010 / r43011;
double r43013 = 1.0;
double r43014 = b;
double r43015 = r43014 * r43014;
double r43016 = a;
double r43017 = r43016 * r43016;
double r43018 = r43015 - r43017;
double r43019 = r43013 / r43018;
double r43020 = r43012 * r43019;
double r43021 = r43013 / r43016;
double r43022 = r43013 / r43014;
double r43023 = r43021 - r43022;
double r43024 = r43020 * r43023;
return r43024;
}
double f(double a, double b) {
double r43025 = 0.5;
double r43026 = atan2(1.0, 0.0);
double r43027 = a;
double r43028 = b;
double r43029 = r43027 * r43028;
double r43030 = r43026 / r43029;
double r43031 = r43025 * r43030;
double r43032 = r43028 + r43027;
double r43033 = r43031 / r43032;
return r43033;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.3
rmApplied difference-of-squares9.5
Applied *-un-lft-identity9.5
Applied times-frac9.1
Applied associate-*r*9.1
Simplified9.0
rmApplied associate-*l/9.0
Applied associate-*l/0.3
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2020027 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
:precision binary64
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))