\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\frac{\pi}{2} \cdot \left(\frac{1}{\left(b + a\right) \cdot a} \cdot \frac{1}{b - a}\right) - \frac{\frac{1}{\frac{b - a}{\frac{\pi}{2}}}}{\left(b + a\right) \cdot b}double f(double a, double b) {
double r3034012 = atan2(1.0, 0.0);
double r3034013 = 2.0;
double r3034014 = r3034012 / r3034013;
double r3034015 = 1.0;
double r3034016 = b;
double r3034017 = r3034016 * r3034016;
double r3034018 = a;
double r3034019 = r3034018 * r3034018;
double r3034020 = r3034017 - r3034019;
double r3034021 = r3034015 / r3034020;
double r3034022 = r3034014 * r3034021;
double r3034023 = r3034015 / r3034018;
double r3034024 = r3034015 / r3034016;
double r3034025 = r3034023 - r3034024;
double r3034026 = r3034022 * r3034025;
return r3034026;
}
double f(double a, double b) {
double r3034027 = atan2(1.0, 0.0);
double r3034028 = 2.0;
double r3034029 = r3034027 / r3034028;
double r3034030 = 1.0;
double r3034031 = b;
double r3034032 = a;
double r3034033 = r3034031 + r3034032;
double r3034034 = r3034033 * r3034032;
double r3034035 = r3034030 / r3034034;
double r3034036 = r3034031 - r3034032;
double r3034037 = r3034030 / r3034036;
double r3034038 = r3034035 * r3034037;
double r3034039 = r3034029 * r3034038;
double r3034040 = r3034036 / r3034029;
double r3034041 = r3034030 / r3034040;
double r3034042 = r3034033 * r3034031;
double r3034043 = r3034041 / r3034042;
double r3034044 = r3034039 - r3034043;
return r3034044;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.4
Simplified8.7
rmApplied associate-/l/4.4
rmApplied *-un-lft-identity4.4
Applied div-inv4.4
Applied times-frac0.3
rmApplied *-un-lft-identity0.3
Applied associate-/l*0.3
rmApplied *-un-lft-identity0.3
Applied div-inv0.3
Applied times-frac0.3
Applied associate-*l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019128
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))