double f(double a, double b) {
double r2357042 = atan2(1.0, 0.0);
double r2357043 = 2.0;
double r2357044 = r2357042 / r2357043;
double r2357045 = 1.0;
double r2357046 = b;
double r2357047 = r2357046 * r2357046;
double r2357048 = a;
double r2357049 = r2357048 * r2357048;
double r2357050 = r2357047 - r2357049;
double r2357051 = r2357045 / r2357050;
double r2357052 = r2357044 * r2357051;
double r2357053 = r2357045 / r2357048;
double r2357054 = r2357045 / r2357046;
double r2357055 = r2357053 - r2357054;
double r2357056 = r2357052 * r2357055;
return r2357056;
}
double f(double a, double b) {
double r2357057 = 1.0;
double r2357058 = b;
double r2357059 = a;
double r2357060 = r2357058 + r2357059;
double r2357061 = r2357057 / r2357060;
double r2357062 = r2357058 - r2357059;
double r2357063 = atan2(1.0, 0.0);
double r2357064 = r2357062 / r2357063;
double r2357065 = r2357057 / r2357064;
double r2357066 = r2357061 * r2357065;
double r2357067 = -1.0;
double r2357068 = r2357067 / r2357058;
double r2357069 = r2357065 / r2357059;
double r2357070 = r2357061 * r2357069;
double r2357071 = fma(r2357066, r2357068, r2357070);
double r2357072 = 2.0;
double r2357073 = r2357071 / r2357072;
return r2357073;
}
\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\frac{(\left(\frac{1}{b + a} \cdot \frac{1}{\frac{b - a}{\pi}}\right) \cdot \left(\frac{-1}{b}\right) + \left(\frac{1}{b + a} \cdot \frac{\frac{1}{\frac{b - a}{\pi}}}{a}\right))_*}{2}


Bits error versus a



Bits error versus b
Initial program 14.0
Simplified13.9
rmApplied *-un-lft-identity13.9
Applied difference-of-squares13.9
Applied *-un-lft-identity13.9
Applied times-frac13.6
Applied times-frac9.3
Simplified9.3
rmApplied difference-of-squares4.6
Applied *-un-lft-identity4.6
Applied times-frac4.4
rmApplied clear-num4.4
rmApplied *-un-lft-identity4.4
Applied associate-/l*4.4
Final simplification4.4
herbie shell --seed 2019102 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))