\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 r9183110 = K;
double r9183111 = m;
double r9183112 = n;
double r9183113 = r9183111 + r9183112;
double r9183114 = r9183110 * r9183113;
double r9183115 = 2.0;
double r9183116 = r9183114 / r9183115;
double r9183117 = M;
double r9183118 = r9183116 - r9183117;
double r9183119 = cos(r9183118);
double r9183120 = r9183113 / r9183115;
double r9183121 = r9183120 - r9183117;
double r9183122 = pow(r9183121, r9183115);
double r9183123 = -r9183122;
double r9183124 = l;
double r9183125 = r9183111 - r9183112;
double r9183126 = fabs(r9183125);
double r9183127 = r9183124 - r9183126;
double r9183128 = r9183123 - r9183127;
double r9183129 = exp(r9183128);
double r9183130 = r9183119 * r9183129;
return r9183130;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r9183131 = m;
double r9183132 = n;
double r9183133 = r9183131 + r9183132;
double r9183134 = 2.0;
double r9183135 = r9183133 / r9183134;
double r9183136 = M;
double r9183137 = r9183135 - r9183136;
double r9183138 = pow(r9183137, r9183134);
double r9183139 = -r9183138;
double r9183140 = l;
double r9183141 = r9183131 - r9183132;
double r9183142 = fabs(r9183141);
double r9183143 = r9183140 - r9183142;
double r9183144 = r9183139 - r9183143;
double r9183145 = exp(r9183144);
return r9183145;
}



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.5
Final simplification1.5
herbie shell --seed 2019107
(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)))))))