\frac{e^{x} - e^{-x}}{2}\begin{array}{l}
\mathbf{if}\;x \le -0.014551332296984472:\\
\;\;\;\;\frac{\frac{{\left(e^{x}\right)}^{3} - {\left(e^{-x}\right)}^{3}}{\left(e^{x} \cdot e^{-x} + e^{-x} \cdot e^{-x}\right) + e^{x} \cdot e^{x}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\left(\mathsf{log1p}\left(\left(\mathsf{fma}\left(\frac{1}{60}, \left({x}^{5}\right), \left(x \cdot 2 + \left(\frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)\right)\right)\right)\right)\right)}{2}\\
\end{array}double f(double x) {
double r7853406 = x;
double r7853407 = exp(r7853406);
double r7853408 = -r7853406;
double r7853409 = exp(r7853408);
double r7853410 = r7853407 - r7853409;
double r7853411 = 2.0;
double r7853412 = r7853410 / r7853411;
return r7853412;
}
double f(double x) {
double r7853413 = x;
double r7853414 = -0.014551332296984472;
bool r7853415 = r7853413 <= r7853414;
double r7853416 = exp(r7853413);
double r7853417 = 3.0;
double r7853418 = pow(r7853416, r7853417);
double r7853419 = -r7853413;
double r7853420 = exp(r7853419);
double r7853421 = pow(r7853420, r7853417);
double r7853422 = r7853418 - r7853421;
double r7853423 = r7853416 * r7853420;
double r7853424 = r7853420 * r7853420;
double r7853425 = r7853423 + r7853424;
double r7853426 = r7853416 * r7853416;
double r7853427 = r7853425 + r7853426;
double r7853428 = r7853422 / r7853427;
double r7853429 = 2.0;
double r7853430 = r7853428 / r7853429;
double r7853431 = 0.016666666666666666;
double r7853432 = 5.0;
double r7853433 = pow(r7853413, r7853432);
double r7853434 = r7853413 * r7853429;
double r7853435 = 0.3333333333333333;
double r7853436 = r7853413 * r7853413;
double r7853437 = r7853435 * r7853436;
double r7853438 = r7853437 * r7853413;
double r7853439 = r7853434 + r7853438;
double r7853440 = fma(r7853431, r7853433, r7853439);
double r7853441 = log1p(r7853440);
double r7853442 = expm1(r7853441);
double r7853443 = r7853442 / r7853429;
double r7853444 = r7853415 ? r7853430 : r7853443;
return r7853444;
}



Bits error versus x
if x < -0.014551332296984472Initial program 0.4
rmApplied flip3--5.7
if -0.014551332296984472 < x Initial program 58.5
Taylor expanded around 0 0.2
Simplified0.3
rmApplied fma-udef0.3
Applied distribute-lft-in0.2
rmApplied expm1-log1p-u0.2
Final simplification0.3
herbie shell --seed 2019120 +o rules:numerics
(FPCore (x)
:name "Hyperbolic sine"
(/ (- (exp x) (exp (- x))) 2))