\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 r112003 = K;
double r112004 = m;
double r112005 = n;
double r112006 = r112004 + r112005;
double r112007 = r112003 * r112006;
double r112008 = 2.0;
double r112009 = r112007 / r112008;
double r112010 = M;
double r112011 = r112009 - r112010;
double r112012 = cos(r112011);
double r112013 = r112006 / r112008;
double r112014 = r112013 - r112010;
double r112015 = pow(r112014, r112008);
double r112016 = -r112015;
double r112017 = l;
double r112018 = r112004 - r112005;
double r112019 = fabs(r112018);
double r112020 = r112017 - r112019;
double r112021 = r112016 - r112020;
double r112022 = exp(r112021);
double r112023 = r112012 * r112022;
return r112023;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r112024 = m;
double r112025 = n;
double r112026 = r112024 + r112025;
double r112027 = 2.0;
double r112028 = r112026 / r112027;
double r112029 = M;
double r112030 = r112028 - r112029;
double r112031 = pow(r112030, r112027);
double r112032 = -r112031;
double r112033 = l;
double r112034 = r112024 - r112025;
double r112035 = fabs(r112034);
double r112036 = r112033 - r112035;
double r112037 = r112032 - r112036;
double r112038 = exp(r112037);
return r112038;
}



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
Taylor expanded around 0 1.4
Final simplification1.4
herbie shell --seed 2020083
(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)))))))