\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 r123110 = K;
double r123111 = m;
double r123112 = n;
double r123113 = r123111 + r123112;
double r123114 = r123110 * r123113;
double r123115 = 2.0;
double r123116 = r123114 / r123115;
double r123117 = M;
double r123118 = r123116 - r123117;
double r123119 = cos(r123118);
double r123120 = r123113 / r123115;
double r123121 = r123120 - r123117;
double r123122 = pow(r123121, r123115);
double r123123 = -r123122;
double r123124 = l;
double r123125 = r123111 - r123112;
double r123126 = fabs(r123125);
double r123127 = r123124 - r123126;
double r123128 = r123123 - r123127;
double r123129 = exp(r123128);
double r123130 = r123119 * r123129;
return r123130;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r123131 = m;
double r123132 = n;
double r123133 = r123131 + r123132;
double r123134 = 2.0;
double r123135 = r123133 / r123134;
double r123136 = M;
double r123137 = r123135 - r123136;
double r123138 = pow(r123137, r123134);
double r123139 = -r123138;
double r123140 = l;
double r123141 = r123131 - r123132;
double r123142 = fabs(r123141);
double r123143 = r123140 - r123142;
double r123144 = r123139 - r123143;
double r123145 = exp(r123144);
return r123145;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.5
Taylor expanded around 0 1.3
Final simplification1.3
herbie shell --seed 2019303
(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)))))))