\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|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}double f(double K, double m, double n, double M, double l) {
double r121410 = K;
double r121411 = m;
double r121412 = n;
double r121413 = r121411 + r121412;
double r121414 = r121410 * r121413;
double r121415 = 2.0;
double r121416 = r121414 / r121415;
double r121417 = M;
double r121418 = r121416 - r121417;
double r121419 = cos(r121418);
double r121420 = r121413 / r121415;
double r121421 = r121420 - r121417;
double r121422 = pow(r121421, r121415);
double r121423 = -r121422;
double r121424 = l;
double r121425 = r121411 - r121412;
double r121426 = fabs(r121425);
double r121427 = r121424 - r121426;
double r121428 = r121423 - r121427;
double r121429 = exp(r121428);
double r121430 = r121419 * r121429;
return r121430;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r121431 = m;
double r121432 = n;
double r121433 = r121431 - r121432;
double r121434 = fabs(r121433);
double r121435 = l;
double r121436 = r121434 - r121435;
double r121437 = r121431 + r121432;
double r121438 = 2.0;
double r121439 = r121437 / r121438;
double r121440 = M;
double r121441 = r121439 - r121440;
double r121442 = pow(r121441, r121438);
double r121443 = r121436 - r121442;
double r121444 = exp(r121443);
return r121444;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.5
Simplified15.5
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019303
(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)))))))