\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{n + m}{2} - M, \frac{n + m}{2} - M, \ell\right)} \cdot \cos \left(\left(\left(\frac{K}{\sqrt{2}}\right)\right) \cdot \left(\left(\frac{n + m}{\sqrt{2}}\right)\right) - M\right)double f(double K, double m, double n, double M, double l) {
double r3769953 = K;
double r3769954 = m;
double r3769955 = n;
double r3769956 = r3769954 + r3769955;
double r3769957 = r3769953 * r3769956;
double r3769958 = 2.0;
double r3769959 = r3769957 / r3769958;
double r3769960 = M;
double r3769961 = r3769959 - r3769960;
double r3769962 = cos(r3769961);
double r3769963 = r3769956 / r3769958;
double r3769964 = r3769963 - r3769960;
double r3769965 = pow(r3769964, r3769958);
double r3769966 = -r3769965;
double r3769967 = l;
double r3769968 = r3769954 - r3769955;
double r3769969 = fabs(r3769968);
double r3769970 = r3769967 - r3769969;
double r3769971 = r3769966 - r3769970;
double r3769972 = exp(r3769971);
double r3769973 = r3769962 * r3769972;
return r3769973;
}
double f(double K, double m, double n, double M, double l) {
double r3769974 = m;
double r3769975 = n;
double r3769976 = r3769974 - r3769975;
double r3769977 = fabs(r3769976);
double r3769978 = r3769975 + r3769974;
double r3769979 = 2.0;
double r3769980 = r3769978 / r3769979;
double r3769981 = M;
double r3769982 = r3769980 - r3769981;
double r3769983 = l;
double r3769984 = fma(r3769982, r3769982, r3769983);
double r3769985 = r3769977 - r3769984;
double r3769986 = exp(r3769985);
double r3769987 = K;
double r3769988 = sqrt(r3769979);
double r3769989 = r3769987 / r3769988;
double r3769990 = /* ERROR: no posit support in C */;
double r3769991 = /* ERROR: no posit support in C */;
double r3769992 = r3769978 / r3769988;
double r3769993 = /* ERROR: no posit support in C */;
double r3769994 = /* ERROR: no posit support in C */;
double r3769995 = r3769991 * r3769994;
double r3769996 = r3769995 - r3769981;
double r3769997 = cos(r3769996);
double r3769998 = r3769986 * r3769997;
return r3769998;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 15.4
Simplified15.3
rmApplied add-sqr-sqrt15.3
Applied *-un-lft-identity15.3
Applied *-un-lft-identity15.3
Applied distribute-lft-out15.3
Applied times-frac15.3
Applied associate-*r*15.3
Simplified15.3
rmApplied insert-posit162.7
rmApplied insert-posit161.9
Final simplification1.9
herbie shell --seed 2019144 +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)))))))