\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 r3829881 = K;
double r3829882 = m;
double r3829883 = n;
double r3829884 = r3829882 + r3829883;
double r3829885 = r3829881 * r3829884;
double r3829886 = 2.0;
double r3829887 = r3829885 / r3829886;
double r3829888 = M;
double r3829889 = r3829887 - r3829888;
double r3829890 = cos(r3829889);
double r3829891 = r3829884 / r3829886;
double r3829892 = r3829891 - r3829888;
double r3829893 = pow(r3829892, r3829886);
double r3829894 = -r3829893;
double r3829895 = l;
double r3829896 = r3829882 - r3829883;
double r3829897 = fabs(r3829896);
double r3829898 = r3829895 - r3829897;
double r3829899 = r3829894 - r3829898;
double r3829900 = exp(r3829899);
double r3829901 = r3829890 * r3829900;
return r3829901;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r3829902 = m;
double r3829903 = n;
double r3829904 = r3829902 - r3829903;
double r3829905 = fabs(r3829904);
double r3829906 = r3829902 + r3829903;
double r3829907 = 2.0;
double r3829908 = r3829906 / r3829907;
double r3829909 = M;
double r3829910 = r3829908 - r3829909;
double r3829911 = l;
double r3829912 = fma(r3829910, r3829910, r3829911);
double r3829913 = r3829905 - r3829912;
double r3829914 = exp(r3829913);
return r3829914;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 15.2
Simplified15.1
Taylor expanded around 0 1.2
Final simplification1.2
herbie shell --seed 2019151 +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)))))))