Average Error: 17.6 → 0.2
Time: 42.1s
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(J \cdot \left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) + J \cdot \left(\cos \left(K \cdot 0.5\right) \cdot \left(\ell \cdot 2 + \left(\ell \cdot \ell\right) \cdot \left(\frac{1}{3} \cdot \ell\right)\right)\right)\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(J \cdot \left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) + J \cdot \left(\cos \left(K \cdot 0.5\right) \cdot \left(\ell \cdot 2 + \left(\ell \cdot \ell\right) \cdot \left(\frac{1}{3} \cdot \ell\right)\right)\right)\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 r3727387 = J;
        double r3727388 = l;
        double r3727389 = exp(r3727388);
        double r3727390 = -r3727388;
        double r3727391 = exp(r3727390);
        double r3727392 = r3727389 - r3727391;
        double r3727393 = r3727387 * r3727392;
        double r3727394 = K;
        double r3727395 = 2.0;
        double r3727396 = r3727394 / r3727395;
        double r3727397 = cos(r3727396);
        double r3727398 = r3727393 * r3727397;
        double r3727399 = U;
        double r3727400 = r3727398 + r3727399;
        return r3727400;
}

double f(double J, double l, double K, double U) {
        double r3727401 = l;
        double r3727402 = 0.016140146370427967;
        bool r3727403 = r3727401 <= r3727402;
        double r3727404 = U;
        double r3727405 = J;
        double r3727406 = 0.016666666666666666;
        double r3727407 = 5.0;
        double r3727408 = pow(r3727401, r3727407);
        double r3727409 = r3727406 * r3727408;
        double r3727410 = K;
        double r3727411 = 2.0;
        double r3727412 = r3727410 / r3727411;
        double r3727413 = cos(r3727412);
        double r3727414 = r3727409 * r3727413;
        double r3727415 = r3727405 * r3727414;
        double r3727416 = 0.5;
        double r3727417 = r3727410 * r3727416;
        double r3727418 = cos(r3727417);
        double r3727419 = 2.0;
        double r3727420 = r3727401 * r3727419;
        double r3727421 = r3727401 * r3727401;
        double r3727422 = 0.3333333333333333;
        double r3727423 = r3727422 * r3727401;
        double r3727424 = r3727421 * r3727423;
        double r3727425 = r3727420 + r3727424;
        double r3727426 = r3727418 * r3727425;
        double r3727427 = r3727405 * r3727426;
        double r3727428 = r3727415 + r3727427;
        double r3727429 = r3727404 + r3727428;
        double r3727430 = exp(r3727401);
        double r3727431 = sqrt(r3727430);
        double r3727432 = -r3727401;
        double r3727433 = exp(r3727432);
        double r3727434 = sqrt(r3727433);
        double r3727435 = r3727431 + r3727434;
        double r3727436 = r3727431 - r3727434;
        double r3727437 = r3727435 * r3727436;
        double r3727438 = r3727405 * r3727437;
        double r3727439 = r3727438 * r3727413;
        double r3727440 = r3727439 + r3727404;
        double r3727441 = r3727403 ? r3727429 : r3727440;
        return r3727441;
}

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

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

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

      \[\leadsto \left(J \cdot \color{blue}{\left(\cos \left(0.5 \cdot K\right) \cdot \left(2 \cdot \ell + \left(\ell \cdot \ell\right) \cdot \left(\ell \cdot \frac{1}{3}\right)\right)\right)} + J \cdot \left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right)\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(J \cdot \left(\left(\frac{1}{60} \cdot {\ell}^{5}\right) \cdot \cos \left(\frac{K}{2}\right)\right) + J \cdot \left(\cos \left(K \cdot 0.5\right) \cdot \left(\ell \cdot 2 + \left(\ell \cdot \ell\right) \cdot \left(\frac{1}{3} \cdot \ell\right)\right)\right)\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))