\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\begin{array}{l}
\mathbf{if}\;\ell \le 0.01530521373744643705283596801791645702906:\\
\;\;\;\;U + J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(\ell \cdot \left(2 + \frac{1}{3} \cdot \left(\ell \cdot \ell\right)\right) + \frac{1}{60} \cdot {\ell}^{5}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(J \cdot e^{\ell} - \frac{J}{e^{\ell}}\right) \cdot \cos \left(0.5 \cdot K\right) + U\\
\end{array}double f(double J, double l, double K, double U) {
double r4917128 = J;
double r4917129 = l;
double r4917130 = exp(r4917129);
double r4917131 = -r4917129;
double r4917132 = exp(r4917131);
double r4917133 = r4917130 - r4917132;
double r4917134 = r4917128 * r4917133;
double r4917135 = K;
double r4917136 = 2.0;
double r4917137 = r4917135 / r4917136;
double r4917138 = cos(r4917137);
double r4917139 = r4917134 * r4917138;
double r4917140 = U;
double r4917141 = r4917139 + r4917140;
return r4917141;
}
double f(double J, double l, double K, double U) {
double r4917142 = l;
double r4917143 = 0.015305213737446437;
bool r4917144 = r4917142 <= r4917143;
double r4917145 = U;
double r4917146 = J;
double r4917147 = K;
double r4917148 = 2.0;
double r4917149 = r4917147 / r4917148;
double r4917150 = cos(r4917149);
double r4917151 = 2.0;
double r4917152 = 0.3333333333333333;
double r4917153 = r4917142 * r4917142;
double r4917154 = r4917152 * r4917153;
double r4917155 = r4917151 + r4917154;
double r4917156 = r4917142 * r4917155;
double r4917157 = 0.016666666666666666;
double r4917158 = 5.0;
double r4917159 = pow(r4917142, r4917158);
double r4917160 = r4917157 * r4917159;
double r4917161 = r4917156 + r4917160;
double r4917162 = r4917150 * r4917161;
double r4917163 = r4917146 * r4917162;
double r4917164 = r4917145 + r4917163;
double r4917165 = exp(r4917142);
double r4917166 = r4917146 * r4917165;
double r4917167 = r4917146 / r4917165;
double r4917168 = r4917166 - r4917167;
double r4917169 = 0.5;
double r4917170 = r4917169 * r4917147;
double r4917171 = cos(r4917170);
double r4917172 = r4917168 * r4917171;
double r4917173 = r4917172 + r4917145;
double r4917174 = r4917144 ? r4917164 : r4917173;
return r4917174;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Results
if l < 0.015305213737446437Initial program 17.7
Taylor expanded around 0 0.2
Simplified0.2
rmApplied associate-*l*0.2
if 0.015305213737446437 < l Initial program 1.4
Taylor expanded around inf 1.3
Simplified1.5
Final simplification0.2
herbie shell --seed 2019200
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))