\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)}\frac{1}{e^{{\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)}}double f(double K, double m, double n, double M, double l) {
double r243950 = K;
double r243951 = m;
double r243952 = n;
double r243953 = r243951 + r243952;
double r243954 = r243950 * r243953;
double r243955 = 2.0;
double r243956 = r243954 / r243955;
double r243957 = M;
double r243958 = r243956 - r243957;
double r243959 = cos(r243958);
double r243960 = r243953 / r243955;
double r243961 = r243960 - r243957;
double r243962 = pow(r243961, r243955);
double r243963 = -r243962;
double r243964 = l;
double r243965 = r243951 - r243952;
double r243966 = fabs(r243965);
double r243967 = r243964 - r243966;
double r243968 = r243963 - r243967;
double r243969 = exp(r243968);
double r243970 = r243959 * r243969;
return r243970;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r243971 = 1.0;
double r243972 = m;
double r243973 = n;
double r243974 = r243972 + r243973;
double r243975 = 2.0;
double r243976 = r243974 / r243975;
double r243977 = M;
double r243978 = r243976 - r243977;
double r243979 = pow(r243978, r243975);
double r243980 = l;
double r243981 = r243972 - r243973;
double r243982 = fabs(r243981);
double r243983 = r243980 - r243982;
double r243984 = r243979 + r243983;
double r243985 = exp(r243984);
double r243986 = r243971 / r243985;
return r243986;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.7
Simplified15.7
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019322
(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)))))))