Average Error: 17.6 → 0.4
Time: 53.5s
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 r8187573 = J;
        double r8187574 = l;
        double r8187575 = exp(r8187574);
        double r8187576 = -r8187574;
        double r8187577 = exp(r8187576);
        double r8187578 = r8187575 - r8187577;
        double r8187579 = r8187573 * r8187578;
        double r8187580 = K;
        double r8187581 = 2.0;
        double r8187582 = r8187580 / r8187581;
        double r8187583 = cos(r8187582);
        double r8187584 = r8187579 * r8187583;
        double r8187585 = U;
        double r8187586 = r8187584 + r8187585;
        return r8187586;
}

double f(double J, double l, double K, double U) {
        double r8187587 = J;
        double r8187588 = 0.016666666666666666;
        double r8187589 = l;
        double r8187590 = 5.0;
        double r8187591 = pow(r8187589, r8187590);
        double r8187592 = 0.3333333333333333;
        double r8187593 = r8187589 * r8187589;
        double r8187594 = 2.0;
        double r8187595 = fma(r8187592, r8187593, r8187594);
        double r8187596 = r8187589 * r8187595;
        double r8187597 = fma(r8187588, r8187591, r8187596);
        double r8187598 = K;
        double r8187599 = r8187598 / r8187594;
        double r8187600 = cos(r8187599);
        double r8187601 = r8187597 * r8187600;
        double r8187602 = r8187587 * r8187601;
        double r8187603 = U;
        double r8187604 = r8187602 + r8187603;
        return r8187604;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 17.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.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}, \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 2019120 +o rules:numerics
(FPCore (J l K U)
  :name "Maksimov and Kolovsky, Equation (4)"
  (+ (* (* J (- (exp l) (exp (- l)))) (cos (/ K 2))) U))