\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 r4463396 = K;
double r4463397 = m;
double r4463398 = n;
double r4463399 = r4463397 + r4463398;
double r4463400 = r4463396 * r4463399;
double r4463401 = 2.0;
double r4463402 = r4463400 / r4463401;
double r4463403 = M;
double r4463404 = r4463402 - r4463403;
double r4463405 = cos(r4463404);
double r4463406 = r4463399 / r4463401;
double r4463407 = r4463406 - r4463403;
double r4463408 = pow(r4463407, r4463401);
double r4463409 = -r4463408;
double r4463410 = l;
double r4463411 = r4463397 - r4463398;
double r4463412 = fabs(r4463411);
double r4463413 = r4463410 - r4463412;
double r4463414 = r4463409 - r4463413;
double r4463415 = exp(r4463414);
double r4463416 = r4463405 * r4463415;
return r4463416;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r4463417 = m;
double r4463418 = n;
double r4463419 = r4463417 + r4463418;
double r4463420 = 2.0;
double r4463421 = r4463419 / r4463420;
double r4463422 = M;
double r4463423 = r4463421 - r4463422;
double r4463424 = pow(r4463423, r4463420);
double r4463425 = -r4463424;
double r4463426 = l;
double r4463427 = r4463417 - r4463418;
double r4463428 = fabs(r4463427);
double r4463429 = r4463426 - r4463428;
double r4463430 = r4463425 - r4463429;
double r4463431 = exp(r4463430);
return r4463431;
}



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