Average Error: 17.3 → 0.4
Time: 27.9s
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(\ell, \mathsf{fma}\left(\frac{1}{3} \cdot \ell, \ell, 2\right), {\ell}^{5} \cdot \frac{1}{60}\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(\ell, \mathsf{fma}\left(\frac{1}{3} \cdot \ell, \ell, 2\right), {\ell}^{5} \cdot \frac{1}{60}\right) \cdot \cos \left(\frac{K}{2}\right)\right) + U
double f(double J, double l, double K, double U) {
        double r3535555 = J;
        double r3535556 = l;
        double r3535557 = exp(r3535556);
        double r3535558 = -r3535556;
        double r3535559 = exp(r3535558);
        double r3535560 = r3535557 - r3535559;
        double r3535561 = r3535555 * r3535560;
        double r3535562 = K;
        double r3535563 = 2.0;
        double r3535564 = r3535562 / r3535563;
        double r3535565 = cos(r3535564);
        double r3535566 = r3535561 * r3535565;
        double r3535567 = U;
        double r3535568 = r3535566 + r3535567;
        return r3535568;
}

double f(double J, double l, double K, double U) {
        double r3535569 = J;
        double r3535570 = l;
        double r3535571 = 0.3333333333333333;
        double r3535572 = r3535571 * r3535570;
        double r3535573 = 2.0;
        double r3535574 = fma(r3535572, r3535570, r3535573);
        double r3535575 = 5.0;
        double r3535576 = pow(r3535570, r3535575);
        double r3535577 = 0.016666666666666666;
        double r3535578 = r3535576 * r3535577;
        double r3535579 = fma(r3535570, r3535574, r3535578);
        double r3535580 = K;
        double r3535581 = r3535580 / r3535573;
        double r3535582 = cos(r3535581);
        double r3535583 = r3535579 * r3535582;
        double r3535584 = r3535569 * r3535583;
        double r3535585 = U;
        double r3535586 = r3535584 + r3535585;
        return r3535586;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 17.3

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

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

Reproduce

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