\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.013606942973814946:\\
\;\;\;\;\frac{e^{x} - e^{-x}}{2} \cdot \sin y\\
\mathbf{else}:\\
\;\;\;\;\left({2}^{\left(-\frac{1}{2}\right)} \cdot \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{\sqrt{2}}\right) \cdot \sin y\\
\end{array}double f(double x, double y) {
double r36241 = x;
double r36242 = exp(r36241);
double r36243 = -r36241;
double r36244 = exp(r36243);
double r36245 = r36242 + r36244;
double r36246 = 2.0;
double r36247 = r36245 / r36246;
double r36248 = y;
double r36249 = cos(r36248);
double r36250 = r36247 * r36249;
double r36251 = r36242 - r36244;
double r36252 = r36251 / r36246;
double r36253 = sin(r36248);
double r36254 = r36252 * r36253;
double r36255 = /* ERROR: no complex support in C */;
double r36256 = /* ERROR: no complex support in C */;
return r36256;
}
double f(double x, double y) {
double r36257 = x;
double r36258 = -0.013606942973814946;
bool r36259 = r36257 <= r36258;
double r36260 = exp(r36257);
double r36261 = -r36257;
double r36262 = exp(r36261);
double r36263 = r36260 - r36262;
double r36264 = 2.0;
double r36265 = r36263 / r36264;
double r36266 = y;
double r36267 = sin(r36266);
double r36268 = r36265 * r36267;
double r36269 = 0.5;
double r36270 = -r36269;
double r36271 = pow(r36264, r36270);
double r36272 = 0.3333333333333333;
double r36273 = 3.0;
double r36274 = pow(r36257, r36273);
double r36275 = r36272 * r36274;
double r36276 = 0.016666666666666666;
double r36277 = 5.0;
double r36278 = pow(r36257, r36277);
double r36279 = r36276 * r36278;
double r36280 = 2.0;
double r36281 = r36280 * r36257;
double r36282 = r36279 + r36281;
double r36283 = r36275 + r36282;
double r36284 = sqrt(r36264);
double r36285 = r36283 / r36284;
double r36286 = r36271 * r36285;
double r36287 = r36286 * r36267;
double r36288 = r36259 ? r36268 : r36287;
return r36288;
}



Bits error versus x



Bits error versus y
if x < -0.013606942973814946Initial program 5.4
Simplified5.4
if -0.013606942973814946 < x Initial program 44.2
Simplified44.2
Taylor expanded around 0 0.5
rmApplied add-sqr-sqrt1.3
Applied *-un-lft-identity1.3
Applied times-frac1.1
Applied associate-*l*1.0
rmApplied pow1/21.0
Applied pow-flip0.6
rmApplied associate-*r*0.5
Final simplification0.6
herbie shell --seed 2020081
(FPCore (x y)
:name "Euler formula imaginary part (p55)"
:precision binary64
(im (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))