\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 r139167 = K;
double r139168 = m;
double r139169 = n;
double r139170 = r139168 + r139169;
double r139171 = r139167 * r139170;
double r139172 = 2.0;
double r139173 = r139171 / r139172;
double r139174 = M;
double r139175 = r139173 - r139174;
double r139176 = cos(r139175);
double r139177 = r139170 / r139172;
double r139178 = r139177 - r139174;
double r139179 = pow(r139178, r139172);
double r139180 = -r139179;
double r139181 = l;
double r139182 = r139168 - r139169;
double r139183 = fabs(r139182);
double r139184 = r139181 - r139183;
double r139185 = r139180 - r139184;
double r139186 = exp(r139185);
double r139187 = r139176 * r139186;
return r139187;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r139188 = m;
double r139189 = n;
double r139190 = r139188 + r139189;
double r139191 = 2.0;
double r139192 = r139190 / r139191;
double r139193 = M;
double r139194 = r139192 - r139193;
double r139195 = pow(r139194, r139191);
double r139196 = -r139195;
double r139197 = l;
double r139198 = r139188 - r139189;
double r139199 = fabs(r139198);
double r139200 = r139197 - r139199;
double r139201 = r139196 - r139200;
double r139202 = exp(r139201);
return r139202;
}



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
Taylor expanded around 0 1.2
Final simplification1.2
herbie shell --seed 2019353
(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)))))))