\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 r160726 = K;
double r160727 = m;
double r160728 = n;
double r160729 = r160727 + r160728;
double r160730 = r160726 * r160729;
double r160731 = 2.0;
double r160732 = r160730 / r160731;
double r160733 = M;
double r160734 = r160732 - r160733;
double r160735 = cos(r160734);
double r160736 = r160729 / r160731;
double r160737 = r160736 - r160733;
double r160738 = pow(r160737, r160731);
double r160739 = -r160738;
double r160740 = l;
double r160741 = r160727 - r160728;
double r160742 = fabs(r160741);
double r160743 = r160740 - r160742;
double r160744 = r160739 - r160743;
double r160745 = exp(r160744);
double r160746 = r160735 * r160745;
return r160746;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r160747 = m;
double r160748 = n;
double r160749 = r160747 + r160748;
double r160750 = 2.0;
double r160751 = r160749 / r160750;
double r160752 = M;
double r160753 = r160751 - r160752;
double r160754 = pow(r160753, r160750);
double r160755 = -r160754;
double r160756 = l;
double r160757 = r160747 - r160748;
double r160758 = fabs(r160757);
double r160759 = r160756 - r160758;
double r160760 = r160755 - r160759;
double r160761 = exp(r160760);
return r160761;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



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