\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 r127551 = K;
double r127552 = m;
double r127553 = n;
double r127554 = r127552 + r127553;
double r127555 = r127551 * r127554;
double r127556 = 2.0;
double r127557 = r127555 / r127556;
double r127558 = M;
double r127559 = r127557 - r127558;
double r127560 = cos(r127559);
double r127561 = r127554 / r127556;
double r127562 = r127561 - r127558;
double r127563 = pow(r127562, r127556);
double r127564 = -r127563;
double r127565 = l;
double r127566 = r127552 - r127553;
double r127567 = fabs(r127566);
double r127568 = r127565 - r127567;
double r127569 = r127564 - r127568;
double r127570 = exp(r127569);
double r127571 = r127560 * r127570;
return r127571;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r127572 = m;
double r127573 = n;
double r127574 = r127572 + r127573;
double r127575 = 2.0;
double r127576 = r127574 / r127575;
double r127577 = M;
double r127578 = r127576 - r127577;
double r127579 = pow(r127578, r127575);
double r127580 = -r127579;
double r127581 = l;
double r127582 = r127572 - r127573;
double r127583 = fabs(r127582);
double r127584 = r127581 - r127583;
double r127585 = r127580 - r127584;
double r127586 = exp(r127585);
return r127586;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.3
Taylor expanded around 0 1.1
Final simplification1.1
herbie shell --seed 2020056 +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)))))))