\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}{\left(a + b\right) \cdot 2}, \frac{-1}{b}, \frac{1}{\frac{\left(\left(a + b\right) \cdot 2\right) \cdot a}{\pi}}\right)}{b - a}double f(double a, double b) {
double r1931417 = atan2(1.0, 0.0);
double r1931418 = 2.0;
double r1931419 = r1931417 / r1931418;
double r1931420 = 1.0;
double r1931421 = b;
double r1931422 = r1931421 * r1931421;
double r1931423 = a;
double r1931424 = r1931423 * r1931423;
double r1931425 = r1931422 - r1931424;
double r1931426 = r1931420 / r1931425;
double r1931427 = r1931419 * r1931426;
double r1931428 = r1931420 / r1931423;
double r1931429 = r1931420 / r1931421;
double r1931430 = r1931428 - r1931429;
double r1931431 = r1931427 * r1931430;
return r1931431;
}
double f(double a, double b) {
double r1931432 = atan2(1.0, 0.0);
double r1931433 = a;
double r1931434 = b;
double r1931435 = r1931433 + r1931434;
double r1931436 = 2.0;
double r1931437 = r1931435 * r1931436;
double r1931438 = r1931432 / r1931437;
double r1931439 = -1.0;
double r1931440 = r1931439 / r1931434;
double r1931441 = 1.0;
double r1931442 = r1931437 * r1931433;
double r1931443 = r1931442 / r1931432;
double r1931444 = r1931441 / r1931443;
double r1931445 = fma(r1931438, r1931440, r1931444);
double r1931446 = r1931434 - r1931433;
double r1931447 = r1931445 / r1931446;
return r1931447;
}



Bits error versus a



Bits error versus b
Initial program 14.3
Simplified0.3
rmApplied associate-/l/0.3
rmApplied *-un-lft-identity0.3
Applied associate-/l*0.3
Final simplification0.3
herbie shell --seed 2019144 +o rules:numerics
(FPCore (a b)
:name "NMSE Section 6.1 mentioned, B"
(* (* (/ PI 2) (/ 1 (- (* b b) (* a a)))) (- (/ 1 a) (/ 1 b))))