\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 r104042 = K;
double r104043 = m;
double r104044 = n;
double r104045 = r104043 + r104044;
double r104046 = r104042 * r104045;
double r104047 = 2.0;
double r104048 = r104046 / r104047;
double r104049 = M;
double r104050 = r104048 - r104049;
double r104051 = cos(r104050);
double r104052 = r104045 / r104047;
double r104053 = r104052 - r104049;
double r104054 = pow(r104053, r104047);
double r104055 = -r104054;
double r104056 = l;
double r104057 = r104043 - r104044;
double r104058 = fabs(r104057);
double r104059 = r104056 - r104058;
double r104060 = r104055 - r104059;
double r104061 = exp(r104060);
double r104062 = r104051 * r104061;
return r104062;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r104063 = 1.0;
double r104064 = m;
double r104065 = n;
double r104066 = r104064 + r104065;
double r104067 = 2.0;
double r104068 = r104066 / r104067;
double r104069 = M;
double r104070 = r104068 - r104069;
double r104071 = pow(r104070, r104067);
double r104072 = l;
double r104073 = r104064 - r104065;
double r104074 = fabs(r104073);
double r104075 = r104072 - r104074;
double r104076 = r104071 + r104075;
double r104077 = exp(r104076);
double r104078 = r104063 / r104077;
return r104078;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



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