\frac{e^{x} - e^{-x}}{2}\begin{array}{l}
\mathbf{if}\;x \le -0.0173873374630720313460674475436462671496:\\
\;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{\sqrt{e^{x}}} \cdot \left(\sqrt[3]{e^{x}} \cdot \sqrt[3]{\sqrt{e^{x}}}\right), \sqrt[3]{e^{x}}, -e^{-x}\right)}{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 r67278 = x;
double r67279 = exp(r67278);
double r67280 = -r67278;
double r67281 = exp(r67280);
double r67282 = r67279 - r67281;
double r67283 = 2.0;
double r67284 = r67282 / r67283;
return r67284;
}
double f(double x) {
double r67285 = x;
double r67286 = -0.01738733746307203;
bool r67287 = r67285 <= r67286;
double r67288 = exp(r67285);
double r67289 = sqrt(r67288);
double r67290 = cbrt(r67289);
double r67291 = cbrt(r67288);
double r67292 = r67291 * r67290;
double r67293 = r67290 * r67292;
double r67294 = -r67285;
double r67295 = exp(r67294);
double r67296 = -r67295;
double r67297 = fma(r67293, r67291, r67296);
double r67298 = 2.0;
double r67299 = r67297 / r67298;
double r67300 = 0.3333333333333333;
double r67301 = 3.0;
double r67302 = pow(r67285, r67301);
double r67303 = 0.016666666666666666;
double r67304 = 5.0;
double r67305 = pow(r67285, r67304);
double r67306 = 2.0;
double r67307 = r67306 * r67285;
double r67308 = fma(r67303, r67305, r67307);
double r67309 = fma(r67300, r67302, r67308);
double r67310 = r67309 / r67298;
double r67311 = r67287 ? r67299 : r67310;
return r67311;
}



Bits error versus x
if x < -0.01738733746307203Initial program 0.6
rmApplied add-cube-cbrt0.8
Applied fma-neg0.7
rmApplied add-sqr-sqrt0.7
Applied cbrt-prod0.9
Applied associate-*l*0.8
Simplified0.8
if -0.01738733746307203 < 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))