\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|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}double f(double K, double m, double n, double M, double l) {
double r2628817 = K;
double r2628818 = m;
double r2628819 = n;
double r2628820 = r2628818 + r2628819;
double r2628821 = r2628817 * r2628820;
double r2628822 = 2.0;
double r2628823 = r2628821 / r2628822;
double r2628824 = M;
double r2628825 = r2628823 - r2628824;
double r2628826 = cos(r2628825);
double r2628827 = r2628820 / r2628822;
double r2628828 = r2628827 - r2628824;
double r2628829 = pow(r2628828, r2628822);
double r2628830 = -r2628829;
double r2628831 = l;
double r2628832 = r2628818 - r2628819;
double r2628833 = fabs(r2628832);
double r2628834 = r2628831 - r2628833;
double r2628835 = r2628830 - r2628834;
double r2628836 = exp(r2628835);
double r2628837 = r2628826 * r2628836;
return r2628837;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r2628838 = m;
double r2628839 = n;
double r2628840 = r2628838 - r2628839;
double r2628841 = fabs(r2628840);
double r2628842 = r2628838 + r2628839;
double r2628843 = 2.0;
double r2628844 = r2628842 / r2628843;
double r2628845 = M;
double r2628846 = r2628844 - r2628845;
double r2628847 = l;
double r2628848 = fma(r2628846, r2628846, r2628847);
double r2628849 = r2628841 - r2628848;
double r2628850 = exp(r2628849);
return r2628850;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 15.5
Simplified15.5
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019149 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))