\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\left(\frac{1}{60} \cdot {x}^{5} + \left({x}^{3} \cdot \frac{1}{3} + \left(x + x\right)\right)\right) \cdot \frac{\sin y}{2}double f(double x, double y) {
double r50564 = x;
double r50565 = exp(r50564);
double r50566 = -r50564;
double r50567 = exp(r50566);
double r50568 = r50565 + r50567;
double r50569 = 2.0;
double r50570 = r50568 / r50569;
double r50571 = y;
double r50572 = cos(r50571);
double r50573 = r50570 * r50572;
double r50574 = r50565 - r50567;
double r50575 = r50574 / r50569;
double r50576 = sin(r50571);
double r50577 = r50575 * r50576;
double r50578 = /* ERROR: no complex support in C */;
double r50579 = /* ERROR: no complex support in C */;
return r50579;
}
double f(double x, double y) {
double r50580 = 0.016666666666666666;
double r50581 = x;
double r50582 = 5.0;
double r50583 = pow(r50581, r50582);
double r50584 = r50580 * r50583;
double r50585 = 3.0;
double r50586 = pow(r50581, r50585);
double r50587 = 0.3333333333333333;
double r50588 = r50586 * r50587;
double r50589 = r50581 + r50581;
double r50590 = r50588 + r50589;
double r50591 = r50584 + r50590;
double r50592 = y;
double r50593 = sin(r50592);
double r50594 = 2.0;
double r50595 = r50593 / r50594;
double r50596 = r50591 * r50595;
return r50596;
}



Bits error versus x



Bits error versus y
Initial program 43.6
Simplified43.6
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019194
(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)))))