\left(\frac{\pi}{2} \cdot \frac{1}{b \cdot b - a \cdot a}\right) \cdot \left(\frac{1}{a} - \frac{1}{b}\right)\left(\pi \cdot \left(\frac{\frac{1}{a} - \frac{1}{b}}{b - a} \cdot 1\right)\right) \cdot \frac{1}{2 \cdot \left(b + a\right)}double f(double a, double b) {
double r41074 = atan2(1.0, 0.0);
double r41075 = 2.0;
double r41076 = r41074 / r41075;
double r41077 = 1.0;
double r41078 = b;
double r41079 = r41078 * r41078;
double r41080 = a;
double r41081 = r41080 * r41080;
double r41082 = r41079 - r41081;
double r41083 = r41077 / r41082;
double r41084 = r41076 * r41083;
double r41085 = r41077 / r41080;
double r41086 = r41077 / r41078;
double r41087 = r41085 - r41086;
double r41088 = r41084 * r41087;
return r41088;
}
double f(double a, double b) {
double r41089 = atan2(1.0, 0.0);
double r41090 = 1.0;
double r41091 = a;
double r41092 = r41090 / r41091;
double r41093 = b;
double r41094 = r41090 / r41093;
double r41095 = r41092 - r41094;
double r41096 = r41093 - r41091;
double r41097 = r41095 / r41096;
double r41098 = r41097 * r41090;
double r41099 = r41089 * r41098;
double r41100 = 1.0;
double r41101 = 2.0;
double r41102 = r41093 + r41091;
double r41103 = r41101 * r41102;
double r41104 = r41100 / r41103;
double r41105 = r41099 * r41104;
return r41105;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.5
rmApplied associate-*l*14.5
Simplified0.3
rmApplied associate-*r/0.3
Applied frac-times0.3
rmApplied div-inv0.3
Final simplification0.3
herbie shell --seed 2019304
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
:precision binary64
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))