\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)}{\left(e^{1}\right)}^{\left(0 - \left({\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)\right)\right)}double f(double K, double m, double n, double M, double l) {
double r156700 = K;
double r156701 = m;
double r156702 = n;
double r156703 = r156701 + r156702;
double r156704 = r156700 * r156703;
double r156705 = 2.0;
double r156706 = r156704 / r156705;
double r156707 = M;
double r156708 = r156706 - r156707;
double r156709 = cos(r156708);
double r156710 = r156703 / r156705;
double r156711 = r156710 - r156707;
double r156712 = pow(r156711, r156705);
double r156713 = -r156712;
double r156714 = l;
double r156715 = r156701 - r156702;
double r156716 = fabs(r156715);
double r156717 = r156714 - r156716;
double r156718 = r156713 - r156717;
double r156719 = exp(r156718);
double r156720 = r156709 * r156719;
return r156720;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r156721 = 1.0;
double r156722 = exp(r156721);
double r156723 = 0.0;
double r156724 = m;
double r156725 = n;
double r156726 = r156724 + r156725;
double r156727 = 2.0;
double r156728 = r156726 / r156727;
double r156729 = M;
double r156730 = r156728 - r156729;
double r156731 = pow(r156730, r156727);
double r156732 = l;
double r156733 = r156724 - r156725;
double r156734 = fabs(r156733);
double r156735 = r156732 - r156734;
double r156736 = r156731 + r156735;
double r156737 = r156723 - r156736;
double r156738 = pow(r156722, r156737);
return r156738;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.6
Simplified15.6
Taylor expanded around 0 1.5
rmApplied *-un-lft-identity1.5
Applied exp-prod1.5
Applied pow-flip1.5
Simplified1.5
Final simplification1.5
herbie shell --seed 2020027
(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)))))))