\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 r86313 = K;
double r86314 = m;
double r86315 = n;
double r86316 = r86314 + r86315;
double r86317 = r86313 * r86316;
double r86318 = 2.0;
double r86319 = r86317 / r86318;
double r86320 = M;
double r86321 = r86319 - r86320;
double r86322 = cos(r86321);
double r86323 = r86316 / r86318;
double r86324 = r86323 - r86320;
double r86325 = pow(r86324, r86318);
double r86326 = -r86325;
double r86327 = l;
double r86328 = r86314 - r86315;
double r86329 = fabs(r86328);
double r86330 = r86327 - r86329;
double r86331 = r86326 - r86330;
double r86332 = exp(r86331);
double r86333 = r86322 * r86332;
return r86333;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r86334 = 1.0;
double r86335 = m;
double r86336 = n;
double r86337 = r86335 + r86336;
double r86338 = 2.0;
double r86339 = r86337 / r86338;
double r86340 = M;
double r86341 = r86339 - r86340;
double r86342 = pow(r86341, r86338);
double r86343 = l;
double r86344 = r86335 - r86336;
double r86345 = fabs(r86344);
double r86346 = r86343 - r86345;
double r86347 = r86342 + r86346;
double r86348 = exp(r86347);
double r86349 = r86334 / r86348;
return r86349;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



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