Average Error: 17.6 → 0.7
Time: 31.3s
Precision: 64
\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
\[\mathsf{fma}\left(\cos \left(\frac{K}{2}\right), \left(\ell + \ell\right) \cdot J, U\right)\]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
\mathsf{fma}\left(\cos \left(\frac{K}{2}\right), \left(\ell + \ell\right) \cdot J, U\right)
double f(double J, double l, double K, double U) {
        double r3497290 = J;
        double r3497291 = l;
        double r3497292 = exp(r3497291);
        double r3497293 = -r3497291;
        double r3497294 = exp(r3497293);
        double r3497295 = r3497292 - r3497294;
        double r3497296 = r3497290 * r3497295;
        double r3497297 = K;
        double r3497298 = 2.0;
        double r3497299 = r3497297 / r3497298;
        double r3497300 = cos(r3497299);
        double r3497301 = r3497296 * r3497300;
        double r3497302 = U;
        double r3497303 = r3497301 + r3497302;
        return r3497303;
}

double f(double J, double l, double K, double U) {
        double r3497304 = K;
        double r3497305 = 2.0;
        double r3497306 = r3497304 / r3497305;
        double r3497307 = cos(r3497306);
        double r3497308 = l;
        double r3497309 = r3497308 + r3497308;
        double r3497310 = J;
        double r3497311 = r3497309 * r3497310;
        double r3497312 = U;
        double r3497313 = fma(r3497307, r3497311, r3497312);
        return r3497313;
}

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. Simplified17.6

    \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\frac{K}{2}\right), J \cdot e^{\ell} - \frac{J}{e^{\ell}}, U\right)}\]
  3. Taylor expanded around 0 0.7

    \[\leadsto \mathsf{fma}\left(\cos \left(\frac{K}{2}\right), \color{blue}{2 \cdot \left(J \cdot \ell\right)}, U\right)\]
  4. Simplified0.7

    \[\leadsto \mathsf{fma}\left(\cos \left(\frac{K}{2}\right), \color{blue}{\left(\ell + \ell\right) \cdot J}, U\right)\]
  5. Final simplification0.7

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

Reproduce

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