\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 r82782 = K;
double r82783 = m;
double r82784 = n;
double r82785 = r82783 + r82784;
double r82786 = r82782 * r82785;
double r82787 = 2.0;
double r82788 = r82786 / r82787;
double r82789 = M;
double r82790 = r82788 - r82789;
double r82791 = cos(r82790);
double r82792 = r82785 / r82787;
double r82793 = r82792 - r82789;
double r82794 = pow(r82793, r82787);
double r82795 = -r82794;
double r82796 = l;
double r82797 = r82783 - r82784;
double r82798 = fabs(r82797);
double r82799 = r82796 - r82798;
double r82800 = r82795 - r82799;
double r82801 = exp(r82800);
double r82802 = r82791 * r82801;
return r82802;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r82803 = m;
double r82804 = n;
double r82805 = r82803 + r82804;
double r82806 = 2.0;
double r82807 = r82805 / r82806;
double r82808 = M;
double r82809 = r82807 - r82808;
double r82810 = pow(r82809, r82806);
double r82811 = -r82810;
double r82812 = l;
double r82813 = r82803 - r82804;
double r82814 = fabs(r82813);
double r82815 = r82812 - r82814;
double r82816 = r82811 - r82815;
double r82817 = exp(r82816);
return r82817;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.1
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019291
(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)))))))