Average Error: 58.0 → 0.8
Time: 4.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 r68137 = x;
        double r68138 = exp(r68137);
        double r68139 = -r68137;
        double r68140 = exp(r68139);
        double r68141 = r68138 - r68140;
        double r68142 = 2.0;
        double r68143 = r68141 / r68142;
        return r68143;
}

double f(double x) {
        double r68144 = 0.3333333333333333;
        double r68145 = x;
        double r68146 = 3.0;
        double r68147 = pow(r68145, r68146);
        double r68148 = r68144 * r68147;
        double r68149 = 0.016666666666666666;
        double r68150 = 5.0;
        double r68151 = pow(r68145, r68150);
        double r68152 = r68149 * r68151;
        double r68153 = 2.0;
        double r68154 = r68153 * r68145;
        double r68155 = r68152 + r68154;
        double r68156 = r68148 + r68155;
        double r68157 = 2.0;
        double r68158 = r68156 / r68157;
        return r68158;
}

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.8

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

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

Reproduce

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