\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 r146724 = K;
double r146725 = m;
double r146726 = n;
double r146727 = r146725 + r146726;
double r146728 = r146724 * r146727;
double r146729 = 2.0;
double r146730 = r146728 / r146729;
double r146731 = M;
double r146732 = r146730 - r146731;
double r146733 = cos(r146732);
double r146734 = r146727 / r146729;
double r146735 = r146734 - r146731;
double r146736 = pow(r146735, r146729);
double r146737 = -r146736;
double r146738 = l;
double r146739 = r146725 - r146726;
double r146740 = fabs(r146739);
double r146741 = r146738 - r146740;
double r146742 = r146737 - r146741;
double r146743 = exp(r146742);
double r146744 = r146733 * r146743;
return r146744;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r146745 = m;
double r146746 = n;
double r146747 = r146745 + r146746;
double r146748 = 2.0;
double r146749 = r146747 / r146748;
double r146750 = M;
double r146751 = r146749 - r146750;
double r146752 = pow(r146751, r146748);
double r146753 = -r146752;
double r146754 = l;
double r146755 = r146745 - r146746;
double r146756 = fabs(r146755);
double r146757 = r146754 - r146756;
double r146758 = r146753 - r146757;
double r146759 = exp(r146758);
return r146759;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



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