\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(\frac{\pi}{2}, \frac{-1}{b}, \frac{\frac{\pi}{2}}{a}\right) \cdot \frac{1}{b + a}}{b - a}double f(double a, double b) {
double r1443859 = atan2(1.0, 0.0);
double r1443860 = 2.0;
double r1443861 = r1443859 / r1443860;
double r1443862 = 1.0;
double r1443863 = b;
double r1443864 = r1443863 * r1443863;
double r1443865 = a;
double r1443866 = r1443865 * r1443865;
double r1443867 = r1443864 - r1443866;
double r1443868 = r1443862 / r1443867;
double r1443869 = r1443861 * r1443868;
double r1443870 = r1443862 / r1443865;
double r1443871 = r1443862 / r1443863;
double r1443872 = r1443870 - r1443871;
double r1443873 = r1443869 * r1443872;
return r1443873;
}
double f(double a, double b) {
double r1443874 = atan2(1.0, 0.0);
double r1443875 = 2.0;
double r1443876 = r1443874 / r1443875;
double r1443877 = -1.0;
double r1443878 = b;
double r1443879 = r1443877 / r1443878;
double r1443880 = a;
double r1443881 = r1443876 / r1443880;
double r1443882 = fma(r1443876, r1443879, r1443881);
double r1443883 = 1.0;
double r1443884 = r1443878 + r1443880;
double r1443885 = r1443883 / r1443884;
double r1443886 = r1443882 * r1443885;
double r1443887 = r1443878 - r1443880;
double r1443888 = r1443886 / r1443887;
return r1443888;
}



Bits error versus a



Bits error versus b
Initial program 14.1
Simplified14.0
rmApplied difference-of-squares9.6
Applied associate-/r*0.3
rmApplied clear-num0.3
rmApplied associate-/r/0.3
Final simplification0.3
herbie shell --seed 2019158 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))