\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 r156646 = K;
double r156647 = m;
double r156648 = n;
double r156649 = r156647 + r156648;
double r156650 = r156646 * r156649;
double r156651 = 2.0;
double r156652 = r156650 / r156651;
double r156653 = M;
double r156654 = r156652 - r156653;
double r156655 = cos(r156654);
double r156656 = r156649 / r156651;
double r156657 = r156656 - r156653;
double r156658 = pow(r156657, r156651);
double r156659 = -r156658;
double r156660 = l;
double r156661 = r156647 - r156648;
double r156662 = fabs(r156661);
double r156663 = r156660 - r156662;
double r156664 = r156659 - r156663;
double r156665 = exp(r156664);
double r156666 = r156655 * r156665;
return r156666;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r156667 = m;
double r156668 = n;
double r156669 = r156667 + r156668;
double r156670 = 2.0;
double r156671 = r156669 / r156670;
double r156672 = M;
double r156673 = r156671 - r156672;
double r156674 = pow(r156673, r156670);
double r156675 = -r156674;
double r156676 = l;
double r156677 = r156667 - r156668;
double r156678 = fabs(r156677);
double r156679 = r156676 - r156678;
double r156680 = r156675 - r156679;
double r156681 = exp(r156680);
return r156681;
}



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