\frac{e^{x} - e^{-x}}{2}\begin{array}{l}
\mathbf{if}\;x \le 0.01553176594854795838918093409120046999305:\\
\;\;\;\;\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left({\left(e^{x}\right)}^{\left(\frac{3}{2}\right)} + \sqrt{{\left(e^{-1 \cdot x}\right)}^{3}}\right) \cdot \left({\left(e^{x}\right)}^{\left(\frac{3}{2}\right)} - \sqrt{{\left(e^{-1 \cdot x}\right)}^{3}}\right)}{e^{x} \cdot \left(e^{x} + e^{-1 \cdot x}\right) + {\left(e^{x}\right)}^{-2}}}{2}\\
\end{array}double f(double x) {
double r67326 = x;
double r67327 = exp(r67326);
double r67328 = -r67326;
double r67329 = exp(r67328);
double r67330 = r67327 - r67329;
double r67331 = 2.0;
double r67332 = r67330 / r67331;
return r67332;
}
double f(double x) {
double r67333 = x;
double r67334 = 0.015531765948547958;
bool r67335 = r67333 <= r67334;
double r67336 = 0.3333333333333333;
double r67337 = 3.0;
double r67338 = pow(r67333, r67337);
double r67339 = r67336 * r67338;
double r67340 = 0.016666666666666666;
double r67341 = 5.0;
double r67342 = pow(r67333, r67341);
double r67343 = r67340 * r67342;
double r67344 = 2.0;
double r67345 = r67344 * r67333;
double r67346 = r67343 + r67345;
double r67347 = r67339 + r67346;
double r67348 = 2.0;
double r67349 = r67347 / r67348;
double r67350 = exp(r67333);
double r67351 = r67337 / r67344;
double r67352 = pow(r67350, r67351);
double r67353 = -1.0;
double r67354 = r67353 * r67333;
double r67355 = exp(r67354);
double r67356 = pow(r67355, r67337);
double r67357 = sqrt(r67356);
double r67358 = r67352 + r67357;
double r67359 = r67352 - r67357;
double r67360 = r67358 * r67359;
double r67361 = r67350 + r67355;
double r67362 = r67350 * r67361;
double r67363 = -2.0;
double r67364 = pow(r67350, r67363);
double r67365 = r67362 + r67364;
double r67366 = r67360 / r67365;
double r67367 = r67366 / r67348;
double r67368 = r67335 ? r67349 : r67367;
return r67368;
}



Bits error versus x
Results
if x < 0.015531765948547958Initial program 58.4
Taylor expanded around 0 0.4
if 0.015531765948547958 < x Initial program 0.6
Taylor expanded around inf 0.6
Simplified0.6
rmApplied flip3--3.8
Simplified3.9
rmApplied add-sqr-sqrt3.9
Applied sqr-pow4.2
Applied difference-of-squares4.1
Final simplification0.4
herbie shell --seed 2019291
(FPCore (x)
:name "Hyperbolic sine"
:precision binary64
(/ (- (exp x) (exp (- x))) 2))