Average Error: 16.6 → 0.4
Time: 47.2s
Precision: 64
\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
\[J \cdot \left(\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) \cdot \cos \left(\frac{K}{2}\right)\right) + U\]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
J \cdot \left(\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) \cdot \cos \left(\frac{K}{2}\right)\right) + U
double f(double J, double l, double K, double U) {
        double r17164441 = J;
        double r17164442 = l;
        double r17164443 = exp(r17164442);
        double r17164444 = -r17164442;
        double r17164445 = exp(r17164444);
        double r17164446 = r17164443 - r17164445;
        double r17164447 = r17164441 * r17164446;
        double r17164448 = K;
        double r17164449 = 2.0;
        double r17164450 = r17164448 / r17164449;
        double r17164451 = cos(r17164450);
        double r17164452 = r17164447 * r17164451;
        double r17164453 = U;
        double r17164454 = r17164452 + r17164453;
        return r17164454;
}

double f(double J, double l, double K, double U) {
        double r17164455 = J;
        double r17164456 = 0.016666666666666666;
        double r17164457 = l;
        double r17164458 = 5.0;
        double r17164459 = pow(r17164457, r17164458);
        double r17164460 = 0.3333333333333333;
        double r17164461 = r17164457 * r17164457;
        double r17164462 = 2.0;
        double r17164463 = fma(r17164460, r17164461, r17164462);
        double r17164464 = r17164457 * r17164463;
        double r17164465 = fma(r17164456, r17164459, r17164464);
        double r17164466 = K;
        double r17164467 = r17164466 / r17164462;
        double r17164468 = cos(r17164467);
        double r17164469 = r17164465 * r17164468;
        double r17164470 = r17164455 * r17164469;
        double r17164471 = U;
        double r17164472 = r17164470 + r17164471;
        return r17164472;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 16.6

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

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

    \[\leadsto J \cdot \left(\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) \cdot \cos \left(\frac{K}{2}\right)\right) + U\]

Reproduce

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