Average Error: 17.7 → 0.4
Time: 20.3s
Precision: 64
\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
\[U + \left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, 2 \cdot \ell\right)\right)\]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
U + \left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, 2 \cdot \ell\right)\right)
double f(double J, double l, double K, double U) {
        double r61244 = J;
        double r61245 = l;
        double r61246 = exp(r61245);
        double r61247 = -r61245;
        double r61248 = exp(r61247);
        double r61249 = r61246 - r61248;
        double r61250 = r61244 * r61249;
        double r61251 = K;
        double r61252 = 2.0;
        double r61253 = r61251 / r61252;
        double r61254 = cos(r61253);
        double r61255 = r61250 * r61254;
        double r61256 = U;
        double r61257 = r61255 + r61256;
        return r61257;
}

double f(double J, double l, double K, double U) {
        double r61258 = U;
        double r61259 = K;
        double r61260 = 2.0;
        double r61261 = r61259 / r61260;
        double r61262 = cos(r61261);
        double r61263 = J;
        double r61264 = r61262 * r61263;
        double r61265 = 0.3333333333333333;
        double r61266 = l;
        double r61267 = 3.0;
        double r61268 = pow(r61266, r61267);
        double r61269 = 5.0;
        double r61270 = pow(r61266, r61269);
        double r61271 = 0.016666666666666666;
        double r61272 = 2.0;
        double r61273 = r61272 * r61266;
        double r61274 = fma(r61270, r61271, r61273);
        double r61275 = fma(r61265, r61268, r61274);
        double r61276 = r61264 * r61275;
        double r61277 = r61258 + r61276;
        return r61277;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 17.7

    \[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
  2. Taylor expanded around 0 0.4

    \[\leadsto \left(J \cdot \color{blue}{\left(2 \cdot \ell + \left(\frac{1}{3} \cdot {\ell}^{3} + \frac{1}{60} \cdot {\ell}^{5}\right)\right)}\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
  3. Simplified0.4

    \[\leadsto \left(J \cdot \color{blue}{\mathsf{fma}\left({\ell}^{3}, \frac{1}{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, \ell \cdot 2\right)\right)}\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
  4. Using strategy rm
  5. Applied associate-*l*0.4

    \[\leadsto \color{blue}{J \cdot \left(\mathsf{fma}\left({\ell}^{3}, \frac{1}{3}, \mathsf{fma}\left(\frac{1}{60}, {\ell}^{5}, \ell \cdot 2\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right)} + U\]
  6. Simplified0.4

    \[\leadsto J \cdot \color{blue}{\left(\mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(2, \ell, {\ell}^{5} \cdot \frac{1}{60}\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right)} + U\]
  7. Using strategy rm
  8. Applied *-un-lft-identity0.4

    \[\leadsto \color{blue}{\left(1 \cdot J\right)} \cdot \left(\mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(2, \ell, {\ell}^{5} \cdot \frac{1}{60}\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right) + U\]
  9. Applied associate-*l*0.4

    \[\leadsto \color{blue}{1 \cdot \left(J \cdot \left(\mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left(2, \ell, {\ell}^{5} \cdot \frac{1}{60}\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right)\right)} + U\]
  10. Simplified0.4

    \[\leadsto 1 \cdot \color{blue}{\left(\left(J \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, \ell \cdot 2\right)\right)\right)} + U\]
  11. Final simplification0.4

    \[\leadsto U + \left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \mathsf{fma}\left(\frac{1}{3}, {\ell}^{3}, \mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, 2 \cdot \ell\right)\right)\]

Reproduce

herbie shell --seed 2019196 +o rules:numerics
(FPCore (J l K U)
  :name "Maksimov and Kolovsky, Equation (4)"
  (+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2.0))) U))