\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 r145228 = K;
double r145229 = m;
double r145230 = n;
double r145231 = r145229 + r145230;
double r145232 = r145228 * r145231;
double r145233 = 2.0;
double r145234 = r145232 / r145233;
double r145235 = M;
double r145236 = r145234 - r145235;
double r145237 = cos(r145236);
double r145238 = r145231 / r145233;
double r145239 = r145238 - r145235;
double r145240 = pow(r145239, r145233);
double r145241 = -r145240;
double r145242 = l;
double r145243 = r145229 - r145230;
double r145244 = fabs(r145243);
double r145245 = r145242 - r145244;
double r145246 = r145241 - r145245;
double r145247 = exp(r145246);
double r145248 = r145237 * r145247;
return r145248;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r145249 = m;
double r145250 = n;
double r145251 = r145249 + r145250;
double r145252 = 2.0;
double r145253 = r145251 / r145252;
double r145254 = M;
double r145255 = r145253 - r145254;
double r145256 = pow(r145255, r145252);
double r145257 = -r145256;
double r145258 = l;
double r145259 = r145249 - r145250;
double r145260 = fabs(r145259);
double r145261 = r145258 - r145260;
double r145262 = r145257 - r145261;
double r145263 = exp(r145262);
return r145263;
}



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 +o rules:numerics
(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)))))))