\frac{e^{x} - e^{-x}}{2}\begin{array}{l}
\mathbf{if}\;x \le -0.01529821241413806959252852379904652480036:\\
\;\;\;\;\frac{\frac{e^{x}}{{\left(e^{-2}\right)}^{x} + 1} - \frac{1}{{\left(e^{x}\right)}^{3} + e^{x}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2}\\
\end{array}double f(double x) {
double r39033 = x;
double r39034 = exp(r39033);
double r39035 = -r39033;
double r39036 = exp(r39035);
double r39037 = r39034 - r39036;
double r39038 = 2.0;
double r39039 = r39037 / r39038;
return r39039;
}
double f(double x) {
double r39040 = x;
double r39041 = -0.01529821241413807;
bool r39042 = r39040 <= r39041;
double r39043 = exp(r39040);
double r39044 = -2.0;
double r39045 = exp(r39044);
double r39046 = pow(r39045, r39040);
double r39047 = 1.0;
double r39048 = r39046 + r39047;
double r39049 = r39043 / r39048;
double r39050 = 3.0;
double r39051 = pow(r39043, r39050);
double r39052 = r39051 + r39043;
double r39053 = r39047 / r39052;
double r39054 = r39049 - r39053;
double r39055 = 2.0;
double r39056 = r39054 / r39055;
double r39057 = 0.3333333333333333;
double r39058 = pow(r39040, r39050);
double r39059 = 0.016666666666666666;
double r39060 = 5.0;
double r39061 = pow(r39040, r39060);
double r39062 = 2.0;
double r39063 = r39062 * r39040;
double r39064 = fma(r39059, r39061, r39063);
double r39065 = fma(r39057, r39058, r39064);
double r39066 = r39065 / r39055;
double r39067 = r39042 ? r39056 : r39066;
return r39067;
}



Bits error versus x
if x < -0.01529821241413807Initial program 0.7
rmApplied flip--5.3
Simplified5.2
rmApplied div-sub5.2
Simplified5.4
Simplified0.7
if -0.01529821241413807 < x Initial program 58.5
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x)
:name "Hyperbolic sine"
:precision binary64
(/ (- (exp x) (exp (- x))) 2))