\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)}\frac{1}{e^{\mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right) - \left|m - n\right|}}double f(double K, double m, double n, double M, double l) {
double r3409537 = K;
double r3409538 = m;
double r3409539 = n;
double r3409540 = r3409538 + r3409539;
double r3409541 = r3409537 * r3409540;
double r3409542 = 2.0;
double r3409543 = r3409541 / r3409542;
double r3409544 = M;
double r3409545 = r3409543 - r3409544;
double r3409546 = cos(r3409545);
double r3409547 = r3409540 / r3409542;
double r3409548 = r3409547 - r3409544;
double r3409549 = pow(r3409548, r3409542);
double r3409550 = -r3409549;
double r3409551 = l;
double r3409552 = r3409538 - r3409539;
double r3409553 = fabs(r3409552);
double r3409554 = r3409551 - r3409553;
double r3409555 = r3409550 - r3409554;
double r3409556 = exp(r3409555);
double r3409557 = r3409546 * r3409556;
return r3409557;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r3409558 = 1.0;
double r3409559 = m;
double r3409560 = n;
double r3409561 = r3409559 + r3409560;
double r3409562 = 2.0;
double r3409563 = r3409561 / r3409562;
double r3409564 = M;
double r3409565 = r3409563 - r3409564;
double r3409566 = l;
double r3409567 = fma(r3409565, r3409565, r3409566);
double r3409568 = r3409559 - r3409560;
double r3409569 = fabs(r3409568);
double r3409570 = r3409567 - r3409569;
double r3409571 = exp(r3409570);
double r3409572 = r3409558 / r3409571;
return r3409572;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 14.9
Simplified14.9
Taylor expanded around 0 1.5
Final simplification1.5
herbie shell --seed 2019154 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))