\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 r3284481 = K;
double r3284482 = m;
double r3284483 = n;
double r3284484 = r3284482 + r3284483;
double r3284485 = r3284481 * r3284484;
double r3284486 = 2.0;
double r3284487 = r3284485 / r3284486;
double r3284488 = M;
double r3284489 = r3284487 - r3284488;
double r3284490 = cos(r3284489);
double r3284491 = r3284484 / r3284486;
double r3284492 = r3284491 - r3284488;
double r3284493 = pow(r3284492, r3284486);
double r3284494 = -r3284493;
double r3284495 = l;
double r3284496 = r3284482 - r3284483;
double r3284497 = fabs(r3284496);
double r3284498 = r3284495 - r3284497;
double r3284499 = r3284494 - r3284498;
double r3284500 = exp(r3284499);
double r3284501 = r3284490 * r3284500;
return r3284501;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r3284502 = 1.0;
double r3284503 = m;
double r3284504 = n;
double r3284505 = r3284503 + r3284504;
double r3284506 = 2.0;
double r3284507 = r3284505 / r3284506;
double r3284508 = M;
double r3284509 = r3284507 - r3284508;
double r3284510 = l;
double r3284511 = fma(r3284509, r3284509, r3284510);
double r3284512 = r3284503 - r3284504;
double r3284513 = fabs(r3284512);
double r3284514 = r3284511 - r3284513;
double r3284515 = exp(r3284514);
double r3284516 = r3284502 / r3284515;
return r3284516;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Initial program 14.5
Simplified14.5
Taylor expanded around 0 1.2
Final simplification1.2
herbie shell --seed 2019163 +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)))))))