\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\begin{array}{l}
\mathbf{if}\;x \le -0.01175618612580518231036652565535405301489:\\
\;\;\;\;\Im(\left(\cos y \cdot \frac{e^{x} + e^{-x}}{2} + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\\
\mathbf{else}:\\
\;\;\;\;\Im(\left(\cos y \cdot \frac{e^{x} + e^{-x}}{2} + \frac{\mathsf{fma}\left({x}^{5}, \frac{1}{60}, \left(2 + \frac{1}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)}{2} \cdot \sin y i\right))\\
\end{array}double f(double x, double y) {
double r2337359 = x;
double r2337360 = exp(r2337359);
double r2337361 = -r2337359;
double r2337362 = exp(r2337361);
double r2337363 = r2337360 + r2337362;
double r2337364 = 2.0;
double r2337365 = r2337363 / r2337364;
double r2337366 = y;
double r2337367 = cos(r2337366);
double r2337368 = r2337365 * r2337367;
double r2337369 = r2337360 - r2337362;
double r2337370 = r2337369 / r2337364;
double r2337371 = sin(r2337366);
double r2337372 = r2337370 * r2337371;
double r2337373 = /* ERROR: no complex support in C */;
double r2337374 = /* ERROR: no complex support in C */;
return r2337374;
}
double f(double x, double y) {
double r2337375 = x;
double r2337376 = -0.011756186125805182;
bool r2337377 = r2337375 <= r2337376;
double r2337378 = y;
double r2337379 = cos(r2337378);
double r2337380 = exp(r2337375);
double r2337381 = -r2337375;
double r2337382 = exp(r2337381);
double r2337383 = r2337380 + r2337382;
double r2337384 = 2.0;
double r2337385 = r2337383 / r2337384;
double r2337386 = r2337379 * r2337385;
double r2337387 = r2337380 - r2337382;
double r2337388 = r2337387 / r2337384;
double r2337389 = sin(r2337378);
double r2337390 = r2337388 * r2337389;
double r2337391 = /* ERROR: no complex support in C */;
double r2337392 = /* ERROR: no complex support in C */;
double r2337393 = 5.0;
double r2337394 = pow(r2337375, r2337393);
double r2337395 = 0.016666666666666666;
double r2337396 = 2.0;
double r2337397 = 0.3333333333333333;
double r2337398 = r2337375 * r2337375;
double r2337399 = r2337397 * r2337398;
double r2337400 = r2337396 + r2337399;
double r2337401 = r2337400 * r2337375;
double r2337402 = fma(r2337394, r2337395, r2337401);
double r2337403 = r2337402 / r2337384;
double r2337404 = r2337403 * r2337389;
double r2337405 = /* ERROR: no complex support in C */;
double r2337406 = /* ERROR: no complex support in C */;
double r2337407 = r2337377 ? r2337392 : r2337406;
return r2337407;
}



Bits error versus x



Bits error versus y
if x < -0.011756186125805182Initial program 3.0
if -0.011756186125805182 < x Initial program 43.8
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019200 +o rules:numerics
(FPCore (x y)
:name "Euler formula imaginary part (p55)"
(im (complex (* (/ (+ (exp x) (exp (- x))) 2.0) (cos y)) (* (/ (- (exp x) (exp (- x))) 2.0) (sin y)))))