\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{{x}^{5} \cdot \frac{1}{60} + \left(2 + \left(x \cdot \frac{1}{3}\right) \cdot x\right) \cdot x}{2} \cdot \sin y i\right))double f(double x, double y) {
double r8990076 = x;
double r8990077 = exp(r8990076);
double r8990078 = -r8990076;
double r8990079 = exp(r8990078);
double r8990080 = r8990077 + r8990079;
double r8990081 = 2.0;
double r8990082 = r8990080 / r8990081;
double r8990083 = y;
double r8990084 = cos(r8990083);
double r8990085 = r8990082 * r8990084;
double r8990086 = r8990077 - r8990079;
double r8990087 = r8990086 / r8990081;
double r8990088 = sin(r8990083);
double r8990089 = r8990087 * r8990088;
double r8990090 = /* ERROR: no complex support in C */;
double r8990091 = /* ERROR: no complex support in C */;
return r8990091;
}
double f(double x, double y) {
double r8990092 = x;
double r8990093 = exp(r8990092);
double r8990094 = -r8990092;
double r8990095 = exp(r8990094);
double r8990096 = r8990093 + r8990095;
double r8990097 = 2.0;
double r8990098 = r8990096 / r8990097;
double r8990099 = y;
double r8990100 = cos(r8990099);
double r8990101 = r8990098 * r8990100;
double r8990102 = 5.0;
double r8990103 = pow(r8990092, r8990102);
double r8990104 = 0.016666666666666666;
double r8990105 = r8990103 * r8990104;
double r8990106 = 0.3333333333333333;
double r8990107 = r8990092 * r8990106;
double r8990108 = r8990107 * r8990092;
double r8990109 = r8990097 + r8990108;
double r8990110 = r8990109 * r8990092;
double r8990111 = r8990105 + r8990110;
double r8990112 = r8990111 / r8990097;
double r8990113 = sin(r8990099);
double r8990114 = r8990112 * r8990113;
double r8990115 = /* ERROR: no complex support in C */;
double r8990116 = /* ERROR: no complex support in C */;
return r8990116;
}



Bits error versus x



Bits error versus y
Initial program 43.3
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019128
(FPCore (x y)
:name "Euler formula imaginary part (p55)"
(im (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))