\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)}\begin{array}{l}
\mathbf{if}\;K \le -4.0776803569038904 \cdot 10^{+82}:\\
\;\;\;\;e^{\left(-{\left(\frac{n + m}{2} - M\right)}^{2}\right) - \left(\left(\ell - \left|m - n\right|\right)\right)}\\
\mathbf{elif}\;K \le 4874821.850288491:\\
\;\;\;\;e^{\left(-{\left(\frac{n + m}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)} \cdot \cos \left(\left(\sqrt[3]{\frac{K \cdot \left(n + m\right)}{2}} \cdot \sqrt[3]{\frac{K \cdot \left(n + m\right)}{2}}\right) \cdot \sqrt[3]{\frac{K \cdot \left(n + m\right)}{2}} - M\right)\\
\mathbf{else}:\\
\;\;\;\;e^{\left(-{\left(\frac{n + m}{2} - M\right)}^{2}\right) - \left(\left(\ell - \left|m - n\right|\right)\right)}\\
\end{array}double f(double K, double m, double n, double M, double l) {
double r1353470 = K;
double r1353471 = m;
double r1353472 = n;
double r1353473 = r1353471 + r1353472;
double r1353474 = r1353470 * r1353473;
double r1353475 = 2.0;
double r1353476 = r1353474 / r1353475;
double r1353477 = M;
double r1353478 = r1353476 - r1353477;
double r1353479 = cos(r1353478);
double r1353480 = r1353473 / r1353475;
double r1353481 = r1353480 - r1353477;
double r1353482 = pow(r1353481, r1353475);
double r1353483 = -r1353482;
double r1353484 = l;
double r1353485 = r1353471 - r1353472;
double r1353486 = fabs(r1353485);
double r1353487 = r1353484 - r1353486;
double r1353488 = r1353483 - r1353487;
double r1353489 = exp(r1353488);
double r1353490 = r1353479 * r1353489;
return r1353490;
}
double f(double K, double m, double n, double M, double l) {
double r1353491 = K;
double r1353492 = -4.0776803569038904e+82;
bool r1353493 = r1353491 <= r1353492;
double r1353494 = n;
double r1353495 = m;
double r1353496 = r1353494 + r1353495;
double r1353497 = 2.0;
double r1353498 = r1353496 / r1353497;
double r1353499 = M;
double r1353500 = r1353498 - r1353499;
double r1353501 = pow(r1353500, r1353497);
double r1353502 = -r1353501;
double r1353503 = l;
double r1353504 = r1353495 - r1353494;
double r1353505 = fabs(r1353504);
double r1353506 = r1353503 - r1353505;
double r1353507 = /* ERROR: no posit support in C */;
double r1353508 = /* ERROR: no posit support in C */;
double r1353509 = r1353502 - r1353508;
double r1353510 = exp(r1353509);
double r1353511 = 4874821.850288491;
bool r1353512 = r1353491 <= r1353511;
double r1353513 = r1353502 - r1353506;
double r1353514 = exp(r1353513);
double r1353515 = r1353491 * r1353496;
double r1353516 = r1353515 / r1353497;
double r1353517 = cbrt(r1353516);
double r1353518 = r1353517 * r1353517;
double r1353519 = r1353518 * r1353517;
double r1353520 = r1353519 - r1353499;
double r1353521 = cos(r1353520);
double r1353522 = r1353514 * r1353521;
double r1353523 = r1353512 ? r1353522 : r1353510;
double r1353524 = r1353493 ? r1353510 : r1353523;
return r1353524;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
if K < -4.0776803569038904e+82 or 4874821.850288491 < K Initial program 33.6
Taylor expanded around 0 2.8
rmApplied insert-posit163.2
if -4.0776803569038904e+82 < K < 4874821.850288491Initial program 1.1
rmApplied add-cube-cbrt1.1
Final simplification2.0
herbie shell --seed 2019156 +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)))))))