\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 r5289927 = K;
double r5289928 = m;
double r5289929 = n;
double r5289930 = r5289928 + r5289929;
double r5289931 = r5289927 * r5289930;
double r5289932 = 2.0;
double r5289933 = r5289931 / r5289932;
double r5289934 = M;
double r5289935 = r5289933 - r5289934;
double r5289936 = cos(r5289935);
double r5289937 = r5289930 / r5289932;
double r5289938 = r5289937 - r5289934;
double r5289939 = pow(r5289938, r5289932);
double r5289940 = -r5289939;
double r5289941 = l;
double r5289942 = r5289928 - r5289929;
double r5289943 = fabs(r5289942);
double r5289944 = r5289941 - r5289943;
double r5289945 = r5289940 - r5289944;
double r5289946 = exp(r5289945);
double r5289947 = r5289936 * r5289946;
return r5289947;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r5289948 = m;
double r5289949 = n;
double r5289950 = r5289948 + r5289949;
double r5289951 = 2.0;
double r5289952 = r5289950 / r5289951;
double r5289953 = M;
double r5289954 = r5289952 - r5289953;
double r5289955 = pow(r5289954, r5289951);
double r5289956 = -r5289955;
double r5289957 = l;
double r5289958 = r5289948 - r5289949;
double r5289959 = fabs(r5289958);
double r5289960 = r5289957 - r5289959;
double r5289961 = r5289956 - r5289960;
double r5289962 = exp(r5289961);
return r5289962;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 14.5
Taylor expanded around 0 1.4
Final simplification1.4
herbie shell --seed 2019158
(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)))))))