\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(\sqrt{1}, \frac{\sqrt{1}}{a}, -\frac{1}{b}\right) \cdot \frac{\pi}{2}}{b + a} \cdot \frac{1}{b - a} + \frac{\pi}{\left(b + a\right) \cdot 2} \cdot \left(\frac{1}{b - a} \cdot \left(\left(-\frac{1}{b}\right) + \frac{1}{b}\right)\right)double f(double a, double b) {
double r65929 = atan2(1.0, 0.0);
double r65930 = 2.0;
double r65931 = r65929 / r65930;
double r65932 = 1.0;
double r65933 = b;
double r65934 = r65933 * r65933;
double r65935 = a;
double r65936 = r65935 * r65935;
double r65937 = r65934 - r65936;
double r65938 = r65932 / r65937;
double r65939 = r65931 * r65938;
double r65940 = r65932 / r65935;
double r65941 = r65932 / r65933;
double r65942 = r65940 - r65941;
double r65943 = r65939 * r65942;
return r65943;
}
double f(double a, double b) {
double r65944 = 1.0;
double r65945 = sqrt(r65944);
double r65946 = a;
double r65947 = r65945 / r65946;
double r65948 = b;
double r65949 = r65944 / r65948;
double r65950 = -r65949;
double r65951 = fma(r65945, r65947, r65950);
double r65952 = atan2(1.0, 0.0);
double r65953 = 2.0;
double r65954 = r65952 / r65953;
double r65955 = r65951 * r65954;
double r65956 = r65948 + r65946;
double r65957 = r65955 / r65956;
double r65958 = r65948 - r65946;
double r65959 = r65944 / r65958;
double r65960 = r65957 * r65959;
double r65961 = r65956 * r65953;
double r65962 = r65952 / r65961;
double r65963 = r65950 + r65949;
double r65964 = r65959 * r65963;
double r65965 = r65962 * r65964;
double r65966 = r65960 + r65965;
return r65966;
}



Bits error versus a



Bits error versus b
Initial program 14.7
rmApplied difference-of-squares9.9
Applied *-un-lft-identity9.9
Applied times-frac9.4
Applied associate-*r*9.4
Simplified9.3
rmApplied add-cube-cbrt9.5
Applied *-un-lft-identity9.5
Applied add-sqr-sqrt9.5
Applied times-frac9.5
Applied prod-diff9.5
Applied distribute-lft-in9.5
Simplified0.3
Simplified0.3
rmApplied associate-*r/0.3
Final simplification0.3
herbie shell --seed 2019305 +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))))