\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 r270300 = K;
double r270301 = m;
double r270302 = n;
double r270303 = r270301 + r270302;
double r270304 = r270300 * r270303;
double r270305 = 2.0;
double r270306 = r270304 / r270305;
double r270307 = M;
double r270308 = r270306 - r270307;
double r270309 = cos(r270308);
double r270310 = r270303 / r270305;
double r270311 = r270310 - r270307;
double r270312 = pow(r270311, r270305);
double r270313 = -r270312;
double r270314 = l;
double r270315 = r270301 - r270302;
double r270316 = fabs(r270315);
double r270317 = r270314 - r270316;
double r270318 = r270313 - r270317;
double r270319 = exp(r270318);
double r270320 = r270309 * r270319;
return r270320;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r270321 = m;
double r270322 = n;
double r270323 = r270321 + r270322;
double r270324 = 2.0;
double r270325 = r270323 / r270324;
double r270326 = M;
double r270327 = r270325 - r270326;
double r270328 = pow(r270327, r270324);
double r270329 = -r270328;
double r270330 = l;
double r270331 = r270321 - r270322;
double r270332 = fabs(r270331);
double r270333 = r270330 - r270332;
double r270334 = r270329 - r270333;
double r270335 = exp(r270334);
return r270335;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.2
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2020047 +o rules:numerics
(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)))))))