\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 r163676 = K;
double r163677 = m;
double r163678 = n;
double r163679 = r163677 + r163678;
double r163680 = r163676 * r163679;
double r163681 = 2.0;
double r163682 = r163680 / r163681;
double r163683 = M;
double r163684 = r163682 - r163683;
double r163685 = cos(r163684);
double r163686 = r163679 / r163681;
double r163687 = r163686 - r163683;
double r163688 = pow(r163687, r163681);
double r163689 = -r163688;
double r163690 = l;
double r163691 = r163677 - r163678;
double r163692 = fabs(r163691);
double r163693 = r163690 - r163692;
double r163694 = r163689 - r163693;
double r163695 = exp(r163694);
double r163696 = r163685 * r163695;
return r163696;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r163697 = m;
double r163698 = n;
double r163699 = r163697 + r163698;
double r163700 = 2.0;
double r163701 = r163699 / r163700;
double r163702 = M;
double r163703 = r163701 - r163702;
double r163704 = pow(r163703, r163700);
double r163705 = -r163704;
double r163706 = l;
double r163707 = r163697 - r163698;
double r163708 = fabs(r163707);
double r163709 = r163706 - r163708;
double r163710 = r163705 - r163709;
double r163711 = exp(r163710);
return r163711;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.1
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2020046 +o rules:numerics
(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)))))))