\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\cos \left(\frac{K}{2}\right) \cdot \left(J \cdot \mathsf{fma}\left(\frac{1}{60}, \left({\ell}^{5}\right), \left(\ell \cdot \mathsf{fma}\left(\frac{1}{3}, \left(\ell \cdot \ell\right), 2\right)\right)\right)\right) + Udouble f(double J, double l, double K, double U) {
double r34740827 = J;
double r34740828 = l;
double r34740829 = exp(r34740828);
double r34740830 = -r34740828;
double r34740831 = exp(r34740830);
double r34740832 = r34740829 - r34740831;
double r34740833 = r34740827 * r34740832;
double r34740834 = K;
double r34740835 = 2.0;
double r34740836 = r34740834 / r34740835;
double r34740837 = cos(r34740836);
double r34740838 = r34740833 * r34740837;
double r34740839 = U;
double r34740840 = r34740838 + r34740839;
return r34740840;
}
double f(double J, double l, double K, double U) {
double r34740841 = K;
double r34740842 = 2.0;
double r34740843 = r34740841 / r34740842;
double r34740844 = cos(r34740843);
double r34740845 = J;
double r34740846 = 0.016666666666666666;
double r34740847 = l;
double r34740848 = 5.0;
double r34740849 = pow(r34740847, r34740848);
double r34740850 = 0.3333333333333333;
double r34740851 = r34740847 * r34740847;
double r34740852 = fma(r34740850, r34740851, r34740842);
double r34740853 = r34740847 * r34740852;
double r34740854 = fma(r34740846, r34740849, r34740853);
double r34740855 = r34740845 * r34740854;
double r34740856 = r34740844 * r34740855;
double r34740857 = U;
double r34740858 = r34740856 + r34740857;
return r34740858;
}



Bits error versus J



Bits error versus l



Bits error versus K



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