Average Error: 16.9 → 0.3
Time: 27.6s
Precision: 64
\[\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U\]
\[U + \cos \left(\frac{K}{2}\right) \cdot \left(\mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, \ell \cdot \left(2 + \left(\ell \cdot \ell\right) \cdot \frac{1}{3}\right)\right) \cdot J\right)\]
\left(J \cdot \left(e^{\ell} - e^{-\ell}\right)\right) \cdot \cos \left(\frac{K}{2}\right) + U
U + \cos \left(\frac{K}{2}\right) \cdot \left(\mathsf{fma}\left({\ell}^{5}, \frac{1}{60}, \ell \cdot \left(2 + \left(\ell \cdot \ell\right) \cdot \frac{1}{3}\right)\right) \cdot J\right)
double f(double J, double l, double K, double U) {
        double r2139594 = J;
        double r2139595 = l;
        double r2139596 = exp(r2139595);
        double r2139597 = -r2139595;
        double r2139598 = exp(r2139597);
        double r2139599 = r2139596 - r2139598;
        double r2139600 = r2139594 * r2139599;
        double r2139601 = K;
        double r2139602 = 2.0;
        double r2139603 = r2139601 / r2139602;
        double r2139604 = cos(r2139603);
        double r2139605 = r2139600 * r2139604;
        double r2139606 = U;
        double r2139607 = r2139605 + r2139606;
        return r2139607;
}

double f(double J, double l, double K, double U) {
        double r2139608 = U;
        double r2139609 = K;
        double r2139610 = 2.0;
        double r2139611 = r2139609 / r2139610;
        double r2139612 = cos(r2139611);
        double r2139613 = l;
        double r2139614 = 5.0;
        double r2139615 = pow(r2139613, r2139614);
        double r2139616 = 0.016666666666666666;
        double r2139617 = r2139613 * r2139613;
        double r2139618 = 0.3333333333333333;
        double r2139619 = r2139617 * r2139618;
        double r2139620 = r2139610 + r2139619;
        double r2139621 = r2139613 * r2139620;
        double r2139622 = fma(r2139615, r2139616, r2139621);
        double r2139623 = J;
        double r2139624 = r2139622 * r2139623;
        double r2139625 = r2139612 * r2139624;
        double r2139626 = r2139608 + r2139625;
        return r2139626;
}

Error

Bits error versus J

Bits error versus l

Bits error versus K

Bits error versus U

Derivation

  1. Initial program 16.9

    \[\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.3

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

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

Reproduce

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