Average Error: 58.1 → 0.6
Time: 24.0s
Precision: 64
\[\frac{e^{x} - e^{-x}}{2}\]
\[\frac{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left(2 \cdot x + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right))_*}{2}\]
double f(double x) {
        double r8385358 = x;
        double r8385359 = exp(r8385358);
        double r8385360 = -r8385358;
        double r8385361 = exp(r8385360);
        double r8385362 = r8385359 - r8385361;
        double r8385363 = 2.0;
        double r8385364 = r8385362 / r8385363;
        return r8385364;
}

double f(double x) {
        double r8385365 = 0.016666666666666666;
        double r8385366 = x;
        double r8385367 = 5.0;
        double r8385368 = pow(r8385366, r8385367);
        double r8385369 = 2.0;
        double r8385370 = r8385369 * r8385366;
        double r8385371 = 0.3333333333333333;
        double r8385372 = r8385366 * r8385366;
        double r8385373 = r8385371 * r8385372;
        double r8385374 = r8385373 * r8385366;
        double r8385375 = r8385370 + r8385374;
        double r8385376 = fma(r8385365, r8385368, r8385375);
        double r8385377 = r8385376 / r8385369;
        return r8385377;
}

\frac{e^{x} - e^{-x}}{2}
\frac{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left(2 \cdot x + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right))_*}{2}

Error

Bits error versus x

Derivation

  1. Initial program 58.1

    \[\frac{e^{x} - e^{-x}}{2}\]
  2. Taylor expanded around 0 0.6

    \[\leadsto \frac{\color{blue}{2 \cdot x + \left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right)}}{2}\]
  3. Simplified0.6

    \[\leadsto \frac{\color{blue}{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left(x \cdot (\frac{1}{3} \cdot \left(x \cdot x\right) + 2)_*\right))_*}}{2}\]
  4. Using strategy rm
  5. Applied fma-udef0.6

    \[\leadsto \frac{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left(x \cdot \color{blue}{\left(\frac{1}{3} \cdot \left(x \cdot x\right) + 2\right)}\right))_*}{2}\]
  6. Applied distribute-lft-in0.6

    \[\leadsto \frac{(\frac{1}{60} \cdot \left({x}^{5}\right) + \color{blue}{\left(x \cdot \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) + x \cdot 2\right)})_*}{2}\]
  7. Final simplification0.6

    \[\leadsto \frac{(\frac{1}{60} \cdot \left({x}^{5}\right) + \left(2 \cdot x + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right))_*}{2}\]

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (x)
  :name "Hyperbolic sine"
  (/ (- (exp x) (exp (- x))) 2))