Average Error: 17.6 → 0.2
Time: 43.8s
Precision: 64
\[\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.01614014637042796712629311173259338829666:\\ \;\;\;\;U + \left(\left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J + \left(\cos \left(0.5 \cdot K\right) \cdot \left(2 \cdot \ell + \left(\left(\ell \cdot \ell\right) \cdot \frac{1}{3}\right) \cdot \ell\right)\right) \cdot J\right)\\ \mathbf{else}:\\ \;\;\;\;\left(J \cdot \left(\left(\sqrt{e^{\ell}} + \sqrt{e^{-\ell}}\right) \cdot \left(\sqrt{e^{\ell}} - \sqrt{e^{-\ell}}\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\\ \end{array}\]
\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.01614014637042796712629311173259338829666:\\
\;\;\;\;U + \left(\left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J + \left(\cos \left(0.5 \cdot K\right) \cdot \left(2 \cdot \ell + \left(\left(\ell \cdot \ell\right) \cdot \frac{1}{3}\right) \cdot \ell\right)\right) \cdot J\right)\\

\mathbf{else}:\\
\;\;\;\;\left(J \cdot \left(\left(\sqrt{e^{\ell}} + \sqrt{e^{-\ell}}\right) \cdot \left(\sqrt{e^{\ell}} - \sqrt{e^{-\ell}}\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\\

\end{array}
double f(double J, double l, double K, double U) {
        double r3632975 = J;
        double r3632976 = l;
        double r3632977 = exp(r3632976);
        double r3632978 = -r3632976;
        double r3632979 = exp(r3632978);
        double r3632980 = r3632977 - r3632979;
        double r3632981 = r3632975 * r3632980;
        double r3632982 = K;
        double r3632983 = 2.0;
        double r3632984 = r3632982 / r3632983;
        double r3632985 = cos(r3632984);
        double r3632986 = r3632981 * r3632985;
        double r3632987 = U;
        double r3632988 = r3632986 + r3632987;
        return r3632988;
}

double f(double J, double l, double K, double U) {
        double r3632989 = l;
        double r3632990 = 0.016140146370427967;
        bool r3632991 = r3632989 <= r3632990;
        double r3632992 = U;
        double r3632993 = 0.016666666666666666;
        double r3632994 = 5.0;
        double r3632995 = pow(r3632989, r3632994);
        double r3632996 = r3632993 * r3632995;
        double r3632997 = K;
        double r3632998 = 2.0;
        double r3632999 = r3632997 / r3632998;
        double r3633000 = cos(r3632999);
        double r3633001 = r3632996 * r3633000;
        double r3633002 = J;
        double r3633003 = r3633001 * r3633002;
        double r3633004 = 0.5;
        double r3633005 = r3633004 * r3632997;
        double r3633006 = cos(r3633005);
        double r3633007 = 2.0;
        double r3633008 = r3633007 * r3632989;
        double r3633009 = r3632989 * r3632989;
        double r3633010 = 0.3333333333333333;
        double r3633011 = r3633009 * r3633010;
        double r3633012 = r3633011 * r3632989;
        double r3633013 = r3633008 + r3633012;
        double r3633014 = r3633006 * r3633013;
        double r3633015 = r3633014 * r3633002;
        double r3633016 = r3633003 + r3633015;
        double r3633017 = r3632992 + r3633016;
        double r3633018 = exp(r3632989);
        double r3633019 = sqrt(r3633018);
        double r3633020 = -r3632989;
        double r3633021 = exp(r3633020);
        double r3633022 = sqrt(r3633021);
        double r3633023 = r3633019 + r3633022;
        double r3633024 = r3633019 - r3633022;
        double r3633025 = r3633023 * r3633024;
        double r3633026 = r3633002 * r3633025;
        double r3633027 = r3633026 * r3633000;
        double r3633028 = r3633027 + r3632992;
        double r3633029 = r3632991 ? r3633017 : r3633028;
        return r3633029;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if l < 0.016140146370427967

    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.2

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

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

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

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

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

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

      \[\leadsto \color{blue}{\left(\left(\left(\mathsf{fma}\left(\frac{1}{3}, \ell \cdot \ell, 2\right) \cdot \ell\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J + \left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J\right)} + U\]
    11. Taylor expanded around inf 0.2

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

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

    if 0.016140146370427967 < l

    1. Initial program 1.4

      \[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt1.5

      \[\leadsto \left(J \cdot \left(e^{\ell} - \color{blue}{\sqrt{e^{-\ell}} \cdot \sqrt{e^{-\ell}}}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
    4. Applied add-sqr-sqrt1.6

      \[\leadsto \left(J \cdot \left(\color{blue}{\sqrt{e^{\ell}} \cdot \sqrt{e^{\ell}}} - \sqrt{e^{-\ell}} \cdot \sqrt{e^{-\ell}}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
    5. Applied difference-of-squares1.5

      \[\leadsto \left(J \cdot \color{blue}{\left(\left(\sqrt{e^{\ell}} + \sqrt{e^{-\ell}}\right) \cdot \left(\sqrt{e^{\ell}} - \sqrt{e^{-\ell}}\right)\right)}\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \le 0.01614014637042796712629311173259338829666:\\ \;\;\;\;U + \left(\left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J + \left(\cos \left(0.5 \cdot K\right) \cdot \left(2 \cdot \ell + \left(\left(\ell \cdot \ell\right) \cdot \frac{1}{3}\right) \cdot \ell\right)\right) \cdot J\right)\\ \mathbf{else}:\\ \;\;\;\;\left(J \cdot \left(\left(\sqrt{e^{\ell}} + \sqrt{e^{-\ell}}\right) \cdot \left(\sqrt{e^{\ell}} - \sqrt{e^{-\ell}}\right)\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\\ \end{array}\]

Reproduce

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