\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin ydouble f(double x, double y) {
double r36388 = x;
double r36389 = exp(r36388);
double r36390 = -r36388;
double r36391 = exp(r36390);
double r36392 = r36389 + r36391;
double r36393 = 2.0;
double r36394 = r36392 / r36393;
double r36395 = y;
double r36396 = cos(r36395);
double r36397 = r36394 * r36396;
double r36398 = r36389 - r36391;
double r36399 = r36398 / r36393;
double r36400 = sin(r36395);
double r36401 = r36399 * r36400;
double r36402 = /* ERROR: no complex support in C */;
double r36403 = /* ERROR: no complex support in C */;
return r36403;
}
double f(double x, double y) {
double r36404 = 0.3333333333333333;
double r36405 = x;
double r36406 = 3.0;
double r36407 = pow(r36405, r36406);
double r36408 = r36404 * r36407;
double r36409 = 0.016666666666666666;
double r36410 = 5.0;
double r36411 = pow(r36405, r36410);
double r36412 = r36409 * r36411;
double r36413 = 2.0;
double r36414 = r36413 * r36405;
double r36415 = r36412 + r36414;
double r36416 = r36408 + r36415;
double r36417 = 2.0;
double r36418 = r36416 / r36417;
double r36419 = y;
double r36420 = sin(r36419);
double r36421 = r36418 * r36420;
return r36421;
}



Bits error versus x



Bits error versus y
Initial program 44.0
Simplified44.0
Taylor expanded around 0 0.8
Final simplification0.8
herbie shell --seed 2020024
(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)))))