Average Error: 58.1 → 0.6
Time: 4.1s
Precision: 64
\[\frac{e^{x} - e^{-x}}{2}\]
\[\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2}\]
\frac{e^{x} - e^{-x}}{2}
\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2}
double f(double x) {
        double r67750 = x;
        double r67751 = exp(r67750);
        double r67752 = -r67750;
        double r67753 = exp(r67752);
        double r67754 = r67751 - r67753;
        double r67755 = 2.0;
        double r67756 = r67754 / r67755;
        return r67756;
}

double f(double x) {
        double r67757 = 0.3333333333333333;
        double r67758 = x;
        double r67759 = 3.0;
        double r67760 = pow(r67758, r67759);
        double r67761 = r67757 * r67760;
        double r67762 = 0.016666666666666666;
        double r67763 = 5.0;
        double r67764 = pow(r67758, r67763);
        double r67765 = r67762 * r67764;
        double r67766 = r67761 + r67765;
        double r67767 = 2.0;
        double r67768 = r67767 * r67758;
        double r67769 = r67766 + r67768;
        double r67770 = 2.0;
        double r67771 = r67769 / r67770;
        return r67771;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.1

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

    \[\leadsto \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2}\]
  3. Using strategy rm
  4. Applied associate-+r+0.6

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

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

Reproduce

herbie shell --seed 2020020 
(FPCore (x)
  :name "Hyperbolic sine"
  :precision binary64
  (/ (- (exp x) (exp (- x))) 2))