\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 r2068395 = K;
double r2068396 = m;
double r2068397 = n;
double r2068398 = r2068396 + r2068397;
double r2068399 = r2068395 * r2068398;
double r2068400 = 2.0;
double r2068401 = r2068399 / r2068400;
double r2068402 = M;
double r2068403 = r2068401 - r2068402;
double r2068404 = cos(r2068403);
double r2068405 = r2068398 / r2068400;
double r2068406 = r2068405 - r2068402;
double r2068407 = pow(r2068406, r2068400);
double r2068408 = -r2068407;
double r2068409 = l;
double r2068410 = r2068396 - r2068397;
double r2068411 = fabs(r2068410);
double r2068412 = r2068409 - r2068411;
double r2068413 = r2068408 - r2068412;
double r2068414 = exp(r2068413);
double r2068415 = r2068404 * r2068414;
return r2068415;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r2068416 = m;
double r2068417 = n;
double r2068418 = r2068416 + r2068417;
double r2068419 = 2.0;
double r2068420 = r2068418 / r2068419;
double r2068421 = M;
double r2068422 = r2068420 - r2068421;
double r2068423 = pow(r2068422, r2068419);
double r2068424 = -r2068423;
double r2068425 = l;
double r2068426 = r2068416 - r2068417;
double r2068427 = fabs(r2068426);
double r2068428 = r2068425 - r2068427;
double r2068429 = r2068424 - r2068428;
double r2068430 = exp(r2068429);
return r2068430;
}



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.2
Final simplification1.2
herbie shell --seed 2019151 +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)))))))