\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)}\frac{\cos \left(-M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}double f(double K, double m, double n, double M, double l) {
double r4687771 = K;
double r4687772 = m;
double r4687773 = n;
double r4687774 = r4687772 + r4687773;
double r4687775 = r4687771 * r4687774;
double r4687776 = 2.0;
double r4687777 = r4687775 / r4687776;
double r4687778 = M;
double r4687779 = r4687777 - r4687778;
double r4687780 = cos(r4687779);
double r4687781 = r4687774 / r4687776;
double r4687782 = r4687781 - r4687778;
double r4687783 = pow(r4687782, r4687776);
double r4687784 = -r4687783;
double r4687785 = l;
double r4687786 = r4687772 - r4687773;
double r4687787 = fabs(r4687786);
double r4687788 = r4687785 - r4687787;
double r4687789 = r4687784 - r4687788;
double r4687790 = exp(r4687789);
double r4687791 = r4687780 * r4687790;
return r4687791;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r4687792 = M;
double r4687793 = -r4687792;
double r4687794 = cos(r4687793);
double r4687795 = l;
double r4687796 = m;
double r4687797 = n;
double r4687798 = r4687796 - r4687797;
double r4687799 = fabs(r4687798);
double r4687800 = r4687795 - r4687799;
double r4687801 = r4687797 + r4687796;
double r4687802 = 2.0;
double r4687803 = r4687801 / r4687802;
double r4687804 = r4687803 - r4687792;
double r4687805 = pow(r4687804, r4687802);
double r4687806 = r4687800 + r4687805;
double r4687807 = exp(r4687806);
double r4687808 = r4687794 / r4687807;
return r4687808;
}



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
Simplified15.1
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019200 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2.0) M)) (exp (- (- (pow (- (/ (+ m n) 2.0) M) 2.0)) (- l (fabs (- m n)))))))