\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(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)\right)}double f(double K, double m, double n, double M, double l) {
double r91553 = K;
double r91554 = m;
double r91555 = n;
double r91556 = r91554 + r91555;
double r91557 = r91553 * r91556;
double r91558 = 2.0;
double r91559 = r91557 / r91558;
double r91560 = M;
double r91561 = r91559 - r91560;
double r91562 = cos(r91561);
double r91563 = r91556 / r91558;
double r91564 = r91563 - r91560;
double r91565 = pow(r91564, r91558);
double r91566 = -r91565;
double r91567 = l;
double r91568 = r91554 - r91555;
double r91569 = fabs(r91568);
double r91570 = r91567 - r91569;
double r91571 = r91566 - r91570;
double r91572 = exp(r91571);
double r91573 = r91562 * r91572;
return r91573;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r91574 = exp(1.0);
double r91575 = m;
double r91576 = n;
double r91577 = r91575 + r91576;
double r91578 = 2.0;
double r91579 = r91577 / r91578;
double r91580 = M;
double r91581 = r91579 - r91580;
double r91582 = pow(r91581, r91578);
double r91583 = -r91582;
double r91584 = l;
double r91585 = r91575 - r91576;
double r91586 = fabs(r91585);
double r91587 = r91584 - r91586;
double r91588 = r91583 - r91587;
double r91589 = pow(r91574, r91588);
return r91589;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.3
Taylor expanded around 0 1.4
rmApplied *-un-lft-identity1.4
Applied exp-prod1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2019325
(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)))))))