\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 r4249302 = K;
double r4249303 = m;
double r4249304 = n;
double r4249305 = r4249303 + r4249304;
double r4249306 = r4249302 * r4249305;
double r4249307 = 2.0;
double r4249308 = r4249306 / r4249307;
double r4249309 = M;
double r4249310 = r4249308 - r4249309;
double r4249311 = cos(r4249310);
double r4249312 = r4249305 / r4249307;
double r4249313 = r4249312 - r4249309;
double r4249314 = pow(r4249313, r4249307);
double r4249315 = -r4249314;
double r4249316 = l;
double r4249317 = r4249303 - r4249304;
double r4249318 = fabs(r4249317);
double r4249319 = r4249316 - r4249318;
double r4249320 = r4249315 - r4249319;
double r4249321 = exp(r4249320);
double r4249322 = r4249311 * r4249321;
return r4249322;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r4249323 = m;
double r4249324 = n;
double r4249325 = r4249323 + r4249324;
double r4249326 = 2.0;
double r4249327 = r4249325 / r4249326;
double r4249328 = M;
double r4249329 = r4249327 - r4249328;
double r4249330 = pow(r4249329, r4249326);
double r4249331 = -r4249330;
double r4249332 = l;
double r4249333 = r4249323 - r4249324;
double r4249334 = fabs(r4249333);
double r4249335 = r4249332 - r4249334;
double r4249336 = r4249331 - r4249335;
double r4249337 = exp(r4249336);
return r4249337;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 14.8
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019164 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))