\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|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}double f(double K, double m, double n, double M, double l) {
double r3926976 = K;
double r3926977 = m;
double r3926978 = n;
double r3926979 = r3926977 + r3926978;
double r3926980 = r3926976 * r3926979;
double r3926981 = 2.0;
double r3926982 = r3926980 / r3926981;
double r3926983 = M;
double r3926984 = r3926982 - r3926983;
double r3926985 = cos(r3926984);
double r3926986 = r3926979 / r3926981;
double r3926987 = r3926986 - r3926983;
double r3926988 = pow(r3926987, r3926981);
double r3926989 = -r3926988;
double r3926990 = l;
double r3926991 = r3926977 - r3926978;
double r3926992 = fabs(r3926991);
double r3926993 = r3926990 - r3926992;
double r3926994 = r3926989 - r3926993;
double r3926995 = exp(r3926994);
double r3926996 = r3926985 * r3926995;
return r3926996;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r3926997 = m;
double r3926998 = n;
double r3926999 = r3926997 - r3926998;
double r3927000 = fabs(r3926999);
double r3927001 = l;
double r3927002 = r3927000 - r3927001;
double r3927003 = r3926997 + r3926998;
double r3927004 = 2.0;
double r3927005 = r3927003 / r3927004;
double r3927006 = M;
double r3927007 = r3927005 - r3927006;
double r3927008 = pow(r3927007, r3927004);
double r3927009 = r3927002 - r3927008;
double r3927010 = exp(r3927009);
return r3927010;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.4
Simplified15.3
Taylor expanded around 0 1.4
Final simplification1.4
herbie shell --seed 2019168
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2.0) M)) (exp (- (- (pow (- (/ (+ m n) 2.0) M) 2.0)) (- l (fabs (- m n)))))))