\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|m - n\right| - \mathsf{fma}\left(\left(\frac{n + m}{2} - M\right), \left(\frac{n + m}{2} - M\right), \ell\right)}double f(double K, double m, double n, double M, double l) {
double r4418717 = K;
double r4418718 = m;
double r4418719 = n;
double r4418720 = r4418718 + r4418719;
double r4418721 = r4418717 * r4418720;
double r4418722 = 2.0;
double r4418723 = r4418721 / r4418722;
double r4418724 = M;
double r4418725 = r4418723 - r4418724;
double r4418726 = cos(r4418725);
double r4418727 = r4418720 / r4418722;
double r4418728 = r4418727 - r4418724;
double r4418729 = pow(r4418728, r4418722);
double r4418730 = -r4418729;
double r4418731 = l;
double r4418732 = r4418718 - r4418719;
double r4418733 = fabs(r4418732);
double r4418734 = r4418731 - r4418733;
double r4418735 = r4418730 - r4418734;
double r4418736 = exp(r4418735);
double r4418737 = r4418726 * r4418736;
return r4418737;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r4418738 = m;
double r4418739 = n;
double r4418740 = r4418738 - r4418739;
double r4418741 = fabs(r4418740);
double r4418742 = r4418739 + r4418738;
double r4418743 = 2.0;
double r4418744 = r4418742 / r4418743;
double r4418745 = M;
double r4418746 = r4418744 - r4418745;
double r4418747 = l;
double r4418748 = fma(r4418746, r4418746, r4418747);
double r4418749 = r4418741 - r4418748;
double r4418750 = exp(r4418749);
return r4418750;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 15.6
Simplified15.6
Taylor expanded around 0 1.5
Final simplification1.5
herbie shell --seed 2019132 +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)))))))