\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 r2569726 = K;
double r2569727 = m;
double r2569728 = n;
double r2569729 = r2569727 + r2569728;
double r2569730 = r2569726 * r2569729;
double r2569731 = 2.0;
double r2569732 = r2569730 / r2569731;
double r2569733 = M;
double r2569734 = r2569732 - r2569733;
double r2569735 = cos(r2569734);
double r2569736 = r2569729 / r2569731;
double r2569737 = r2569736 - r2569733;
double r2569738 = pow(r2569737, r2569731);
double r2569739 = -r2569738;
double r2569740 = l;
double r2569741 = r2569727 - r2569728;
double r2569742 = fabs(r2569741);
double r2569743 = r2569740 - r2569742;
double r2569744 = r2569739 - r2569743;
double r2569745 = exp(r2569744);
double r2569746 = r2569735 * r2569745;
return r2569746;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r2569747 = m;
double r2569748 = n;
double r2569749 = r2569747 - r2569748;
double r2569750 = fabs(r2569749);
double r2569751 = r2569747 + r2569748;
double r2569752 = 2.0;
double r2569753 = r2569751 / r2569752;
double r2569754 = M;
double r2569755 = r2569753 - r2569754;
double r2569756 = l;
double r2569757 = fma(r2569755, r2569755, r2569756);
double r2569758 = r2569750 - r2569757;
double r2569759 = exp(r2569758);
return r2569759;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 15.1
Simplified15.1
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019141 +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)))))))