\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}double f(double K, double m, double n, double M, double l) {
double r155249 = K;
double r155250 = m;
double r155251 = n;
double r155252 = r155250 + r155251;
double r155253 = r155249 * r155252;
double r155254 = 2.0;
double r155255 = r155253 / r155254;
double r155256 = M;
double r155257 = r155255 - r155256;
double r155258 = cos(r155257);
double r155259 = r155252 / r155254;
double r155260 = r155259 - r155256;
double r155261 = pow(r155260, r155254);
double r155262 = -r155261;
double r155263 = l;
double r155264 = r155250 - r155251;
double r155265 = fabs(r155264);
double r155266 = r155263 - r155265;
double r155267 = r155262 - r155266;
double r155268 = exp(r155267);
double r155269 = r155258 * r155268;
return r155269;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r155270 = m;
double r155271 = n;
double r155272 = r155270 + r155271;
double r155273 = 2.0;
double r155274 = r155272 / r155273;
double r155275 = M;
double r155276 = r155274 - r155275;
double r155277 = pow(r155276, r155273);
double r155278 = -r155277;
double r155279 = l;
double r155280 = r155270 - r155271;
double r155281 = fabs(r155280);
double r155282 = r155279 - r155281;
double r155283 = r155278 - r155282;
double r155284 = exp(r155283);
return r155284;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.7
Taylor expanded around 0 1.6
Final simplification1.6
herbie shell --seed 2020057
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
:precision binary64
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))