Average Error: 58.0 → 0.6
Time: 13.5s
Precision: 64
\[\frac{e^{x} - e^{-x}}{2}\]
\[\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2}\]
\frac{e^{x} - e^{-x}}{2}
\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2}
double f(double x) {
        double r52214 = x;
        double r52215 = exp(r52214);
        double r52216 = -r52214;
        double r52217 = exp(r52216);
        double r52218 = r52215 - r52217;
        double r52219 = 2.0;
        double r52220 = r52218 / r52219;
        return r52220;
}

double f(double x) {
        double r52221 = 0.3333333333333333;
        double r52222 = x;
        double r52223 = 3.0;
        double r52224 = pow(r52222, r52223);
        double r52225 = r52221 * r52224;
        double r52226 = 0.016666666666666666;
        double r52227 = 5.0;
        double r52228 = pow(r52222, r52227);
        double r52229 = r52226 * r52228;
        double r52230 = 2.0;
        double r52231 = r52230 * r52222;
        double r52232 = r52229 + r52231;
        double r52233 = r52225 + r52232;
        double r52234 = 2.0;
        double r52235 = r52233 / r52234;
        return r52235;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.0

    \[\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. Final simplification0.6

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

Reproduce

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