\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r53519 = x;
double r53520 = exp(r53519);
double r53521 = -r53519;
double r53522 = exp(r53521);
double r53523 = r53520 + r53522;
double r53524 = 2.0;
double r53525 = r53523 / r53524;
double r53526 = y;
double r53527 = cos(r53526);
double r53528 = r53525 * r53527;
double r53529 = r53520 - r53522;
double r53530 = r53529 / r53524;
double r53531 = sin(r53526);
double r53532 = r53530 * r53531;
double r53533 = /* ERROR: no complex support in C */;
double r53534 = /* ERROR: no complex support in C */;
return r53534;
}
double f(double x, double y) {
double r53535 = x;
double r53536 = exp(r53535);
double r53537 = -r53535;
double r53538 = exp(r53537);
double r53539 = r53536 + r53538;
double r53540 = 2.0;
double r53541 = r53539 / r53540;
double r53542 = y;
double r53543 = cos(r53542);
double r53544 = r53541 * r53543;
double r53545 = 0.3333333333333333;
double r53546 = 3.0;
double r53547 = pow(r53535, r53546);
double r53548 = r53545 * r53547;
double r53549 = 0.016666666666666666;
double r53550 = 5.0;
double r53551 = pow(r53535, r53550);
double r53552 = r53549 * r53551;
double r53553 = 2.0;
double r53554 = r53553 * r53535;
double r53555 = r53552 + r53554;
double r53556 = r53548 + r53555;
double r53557 = r53556 / r53540;
double r53558 = sin(r53542);
double r53559 = r53557 * r53558;
double r53560 = /* ERROR: no complex support in C */;
double r53561 = /* ERROR: no complex support in C */;
return r53561;
}



Bits error versus x



Bits error versus y
Initial program 44.1
Taylor expanded around 0 0.7
Final simplification0.7
herbie shell --seed 2019322
(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)))))