\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 r151119 = K;
double r151120 = m;
double r151121 = n;
double r151122 = r151120 + r151121;
double r151123 = r151119 * r151122;
double r151124 = 2.0;
double r151125 = r151123 / r151124;
double r151126 = M;
double r151127 = r151125 - r151126;
double r151128 = cos(r151127);
double r151129 = r151122 / r151124;
double r151130 = r151129 - r151126;
double r151131 = pow(r151130, r151124);
double r151132 = -r151131;
double r151133 = l;
double r151134 = r151120 - r151121;
double r151135 = fabs(r151134);
double r151136 = r151133 - r151135;
double r151137 = r151132 - r151136;
double r151138 = exp(r151137);
double r151139 = r151128 * r151138;
return r151139;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r151140 = m;
double r151141 = n;
double r151142 = r151140 + r151141;
double r151143 = 2.0;
double r151144 = r151142 / r151143;
double r151145 = M;
double r151146 = r151144 - r151145;
double r151147 = pow(r151146, r151143);
double r151148 = -r151147;
double r151149 = l;
double r151150 = r151140 - r151141;
double r151151 = fabs(r151150);
double r151152 = r151149 - r151151;
double r151153 = r151148 - r151152;
double r151154 = exp(r151153);
return r151154;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.3
Taylor expanded around 0 1.1
Final simplification1.1
herbie shell --seed 2020056
(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)))))))