\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 r39206 = x;
double r39207 = exp(r39206);
double r39208 = -r39206;
double r39209 = exp(r39208);
double r39210 = r39207 + r39209;
double r39211 = 2.0;
double r39212 = r39210 / r39211;
double r39213 = y;
double r39214 = cos(r39213);
double r39215 = r39212 * r39214;
double r39216 = r39207 - r39209;
double r39217 = r39216 / r39211;
double r39218 = sin(r39213);
double r39219 = r39217 * r39218;
double r39220 = /* ERROR: no complex support in C */;
double r39221 = /* ERROR: no complex support in C */;
return r39221;
}
double f(double x, double y) {
double r39222 = x;
double r39223 = exp(r39222);
double r39224 = -r39222;
double r39225 = exp(r39224);
double r39226 = r39223 + r39225;
double r39227 = 2.0;
double r39228 = r39226 / r39227;
double r39229 = y;
double r39230 = cos(r39229);
double r39231 = r39228 * r39230;
double r39232 = 0.3333333333333333;
double r39233 = 3.0;
double r39234 = pow(r39222, r39233);
double r39235 = r39232 * r39234;
double r39236 = 0.016666666666666666;
double r39237 = 5.0;
double r39238 = pow(r39222, r39237);
double r39239 = r39236 * r39238;
double r39240 = 2.0;
double r39241 = r39240 * r39222;
double r39242 = r39239 + r39241;
double r39243 = r39235 + r39242;
double r39244 = r39243 / r39227;
double r39245 = sin(r39229);
double r39246 = r39244 * r39245;
double r39247 = /* ERROR: no complex support in C */;
double r39248 = /* ERROR: no complex support in C */;
return r39248;
}



Bits error versus x



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