\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 r3536920 = K;
double r3536921 = m;
double r3536922 = n;
double r3536923 = r3536921 + r3536922;
double r3536924 = r3536920 * r3536923;
double r3536925 = 2.0;
double r3536926 = r3536924 / r3536925;
double r3536927 = M;
double r3536928 = r3536926 - r3536927;
double r3536929 = cos(r3536928);
double r3536930 = r3536923 / r3536925;
double r3536931 = r3536930 - r3536927;
double r3536932 = pow(r3536931, r3536925);
double r3536933 = -r3536932;
double r3536934 = l;
double r3536935 = r3536921 - r3536922;
double r3536936 = fabs(r3536935);
double r3536937 = r3536934 - r3536936;
double r3536938 = r3536933 - r3536937;
double r3536939 = exp(r3536938);
double r3536940 = r3536929 * r3536939;
return r3536940;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r3536941 = m;
double r3536942 = n;
double r3536943 = r3536941 + r3536942;
double r3536944 = 2.0;
double r3536945 = r3536943 / r3536944;
double r3536946 = M;
double r3536947 = r3536945 - r3536946;
double r3536948 = pow(r3536947, r3536944);
double r3536949 = -r3536948;
double r3536950 = l;
double r3536951 = r3536941 - r3536942;
double r3536952 = fabs(r3536951);
double r3536953 = r3536950 - r3536952;
double r3536954 = r3536949 - r3536953;
double r3536955 = exp(r3536954);
return r3536955;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 16.0
Taylor expanded around 0 1.5
Final simplification1.5
herbie shell --seed 2019146
(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)))))))