\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{n + m}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)} \cdot \cos \left(\mathsf{fma}\left(\frac{K}{\sqrt{2}}, \left(\left(\frac{n + m}{\sqrt{2}}\right)\right), -M\right)\right)double f(double K, double m, double n, double M, double l) {
double r3436960 = K;
double r3436961 = m;
double r3436962 = n;
double r3436963 = r3436961 + r3436962;
double r3436964 = r3436960 * r3436963;
double r3436965 = 2.0;
double r3436966 = r3436964 / r3436965;
double r3436967 = M;
double r3436968 = r3436966 - r3436967;
double r3436969 = cos(r3436968);
double r3436970 = r3436963 / r3436965;
double r3436971 = r3436970 - r3436967;
double r3436972 = pow(r3436971, r3436965);
double r3436973 = -r3436972;
double r3436974 = l;
double r3436975 = r3436961 - r3436962;
double r3436976 = fabs(r3436975);
double r3436977 = r3436974 - r3436976;
double r3436978 = r3436973 - r3436977;
double r3436979 = exp(r3436978);
double r3436980 = r3436969 * r3436979;
return r3436980;
}
double f(double K, double m, double n, double M, double l) {
double r3436981 = n;
double r3436982 = m;
double r3436983 = r3436981 + r3436982;
double r3436984 = 2.0;
double r3436985 = r3436983 / r3436984;
double r3436986 = M;
double r3436987 = r3436985 - r3436986;
double r3436988 = pow(r3436987, r3436984);
double r3436989 = -r3436988;
double r3436990 = l;
double r3436991 = r3436982 - r3436981;
double r3436992 = fabs(r3436991);
double r3436993 = r3436990 - r3436992;
double r3436994 = r3436989 - r3436993;
double r3436995 = exp(r3436994);
double r3436996 = K;
double r3436997 = sqrt(r3436984);
double r3436998 = r3436996 / r3436997;
double r3436999 = r3436983 / r3436997;
double r3437000 = /* ERROR: no posit support in C */;
double r3437001 = /* ERROR: no posit support in C */;
double r3437002 = -r3436986;
double r3437003 = fma(r3436998, r3437001, r3437002);
double r3437004 = cos(r3437003);
double r3437005 = r3436995 * r3437004;
return r3437005;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 14.5
rmApplied add-sqr-sqrt14.5
Applied times-frac14.5
Applied fma-neg14.5
rmApplied insert-posit162.6
Final simplification2.6
herbie shell --seed 2019158 +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)))))))