Average Error: 17.4 → 0.4
Time: 32.9s
Precision: 64
\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
\[J \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) + U\]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
J \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) + U
double 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;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 17.4

    \[\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(\frac{1}{60}, {\ell}^{5}, \ell \cdot \left(\ell \cdot \left(\ell \cdot \frac{1}{3}\right) + 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(\frac{1}{60}, {\ell}^{5}, \ell \cdot \left(\ell \cdot \left(\ell \cdot \frac{1}{3}\right) + 2\right)\right) \cdot \cos \left(\frac{K}{2}\right)\right)} + U\]
  6. Simplified0.4

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

    \[\leadsto J \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) + U\]

Reproduce

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))