\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 r154105 = K;
double r154106 = m;
double r154107 = n;
double r154108 = r154106 + r154107;
double r154109 = r154105 * r154108;
double r154110 = 2.0;
double r154111 = r154109 / r154110;
double r154112 = M;
double r154113 = r154111 - r154112;
double r154114 = cos(r154113);
double r154115 = r154108 / r154110;
double r154116 = r154115 - r154112;
double r154117 = pow(r154116, r154110);
double r154118 = -r154117;
double r154119 = l;
double r154120 = r154106 - r154107;
double r154121 = fabs(r154120);
double r154122 = r154119 - r154121;
double r154123 = r154118 - r154122;
double r154124 = exp(r154123);
double r154125 = r154114 * r154124;
return r154125;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r154126 = m;
double r154127 = n;
double r154128 = r154126 + r154127;
double r154129 = 2.0;
double r154130 = r154128 / r154129;
double r154131 = M;
double r154132 = r154130 - r154131;
double r154133 = pow(r154132, r154129);
double r154134 = -r154133;
double r154135 = l;
double r154136 = r154126 - r154127;
double r154137 = fabs(r154136);
double r154138 = r154135 - r154137;
double r154139 = r154134 - r154138;
double r154140 = exp(r154139);
return r154140;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



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