\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 r162739 = K;
double r162740 = m;
double r162741 = n;
double r162742 = r162740 + r162741;
double r162743 = r162739 * r162742;
double r162744 = 2.0;
double r162745 = r162743 / r162744;
double r162746 = M;
double r162747 = r162745 - r162746;
double r162748 = cos(r162747);
double r162749 = r162742 / r162744;
double r162750 = r162749 - r162746;
double r162751 = pow(r162750, r162744);
double r162752 = -r162751;
double r162753 = l;
double r162754 = r162740 - r162741;
double r162755 = fabs(r162754);
double r162756 = r162753 - r162755;
double r162757 = r162752 - r162756;
double r162758 = exp(r162757);
double r162759 = r162748 * r162758;
return r162759;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r162760 = m;
double r162761 = n;
double r162762 = r162760 + r162761;
double r162763 = 2.0;
double r162764 = r162762 / r162763;
double r162765 = M;
double r162766 = r162764 - r162765;
double r162767 = pow(r162766, r162763);
double r162768 = -r162767;
double r162769 = l;
double r162770 = r162760 - r162761;
double r162771 = fabs(r162770);
double r162772 = r162769 - r162771;
double r162773 = r162768 - r162772;
double r162774 = exp(r162773);
return r162774;
}



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 2020089
(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)))))))