\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{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}double f(double K, double m, double n, double M, double l) {
double r112686 = K;
double r112687 = m;
double r112688 = n;
double r112689 = r112687 + r112688;
double r112690 = r112686 * r112689;
double r112691 = 2.0;
double r112692 = r112690 / r112691;
double r112693 = M;
double r112694 = r112692 - r112693;
double r112695 = cos(r112694);
double r112696 = r112689 / r112691;
double r112697 = r112696 - r112693;
double r112698 = pow(r112697, r112691);
double r112699 = -r112698;
double r112700 = l;
double r112701 = r112687 - r112688;
double r112702 = fabs(r112701);
double r112703 = r112700 - r112702;
double r112704 = r112699 - r112703;
double r112705 = exp(r112704);
double r112706 = r112695 * r112705;
return r112706;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r112707 = m;
double r112708 = n;
double r112709 = r112707 + r112708;
double r112710 = 2.0;
double r112711 = r112709 / r112710;
double r112712 = M;
double r112713 = r112711 - r112712;
double r112714 = pow(r112713, r112710);
double r112715 = -r112714;
double r112716 = l;
double r112717 = r112707 - r112708;
double r112718 = fabs(r112717);
double r112719 = r112716 - r112718;
double r112720 = r112715 - r112719;
double r112721 = exp(r112720);
return r112721;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 14.8
Taylor expanded around 0 1.4
Final simplification1.4
herbie shell --seed 2020035
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
:precision binary64
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))