\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + UJ \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, \ell \cdot \mathsf{fma}\left(\ell, \frac{1}{3} \cdot \ell, 2\right)\right)\right) + Udouble f(double J, double l, double K, double U) {
double r2954828 = J;
double r2954829 = l;
double r2954830 = exp(r2954829);
double r2954831 = -r2954829;
double r2954832 = exp(r2954831);
double r2954833 = r2954830 - r2954832;
double r2954834 = r2954828 * r2954833;
double r2954835 = K;
double r2954836 = 2.0;
double r2954837 = r2954835 / r2954836;
double r2954838 = cos(r2954837);
double r2954839 = r2954834 * r2954838;
double r2954840 = U;
double r2954841 = r2954839 + r2954840;
return r2954841;
}
double f(double J, double l, double K, double U) {
double r2954842 = J;
double r2954843 = K;
double r2954844 = 2.0;
double r2954845 = r2954843 / r2954844;
double r2954846 = cos(r2954845);
double r2954847 = l;
double r2954848 = 5.0;
double r2954849 = pow(r2954847, r2954848);
double r2954850 = 0.016666666666666666;
double r2954851 = 0.3333333333333333;
double r2954852 = r2954851 * r2954847;
double r2954853 = fma(r2954847, r2954852, r2954844);
double r2954854 = r2954847 * r2954853;
double r2954855 = fma(r2954849, r2954850, r2954854);
double r2954856 = r2954846 * r2954855;
double r2954857 = r2954842 * r2954856;
double r2954858 = U;
double r2954859 = r2954857 + r2954858;
return r2954859;
}



Bits error versus J



Bits error versus l



Bits error versus K



Bits error versus U
Initial program 17.4
Taylor expanded around 0 0.4
Simplified0.4
rmApplied associate-*l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019151 +o rules:numerics
(FPCore (J l K U)
:name "Maksimov and Kolovsky, Equation (4)"
(+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))