\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 r200657 = K;
double r200658 = m;
double r200659 = n;
double r200660 = r200658 + r200659;
double r200661 = r200657 * r200660;
double r200662 = 2.0;
double r200663 = r200661 / r200662;
double r200664 = M;
double r200665 = r200663 - r200664;
double r200666 = cos(r200665);
double r200667 = r200660 / r200662;
double r200668 = r200667 - r200664;
double r200669 = pow(r200668, r200662);
double r200670 = -r200669;
double r200671 = l;
double r200672 = r200658 - r200659;
double r200673 = fabs(r200672);
double r200674 = r200671 - r200673;
double r200675 = r200670 - r200674;
double r200676 = exp(r200675);
double r200677 = r200666 * r200676;
return r200677;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r200678 = m;
double r200679 = n;
double r200680 = r200678 + r200679;
double r200681 = 2.0;
double r200682 = r200680 / r200681;
double r200683 = M;
double r200684 = r200682 - r200683;
double r200685 = pow(r200684, r200681);
double r200686 = -r200685;
double r200687 = l;
double r200688 = r200678 - r200679;
double r200689 = fabs(r200688);
double r200690 = r200687 - r200689;
double r200691 = r200686 - r200690;
double r200692 = exp(r200691);
return r200692;
}



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 2020047 +o rules:numerics
(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)))))))