\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 r48222 = x;
double r48223 = exp(r48222);
double r48224 = -r48222;
double r48225 = exp(r48224);
double r48226 = r48223 + r48225;
double r48227 = 2.0;
double r48228 = r48226 / r48227;
double r48229 = y;
double r48230 = cos(r48229);
double r48231 = r48228 * r48230;
double r48232 = r48223 - r48225;
double r48233 = r48232 / r48227;
double r48234 = sin(r48229);
double r48235 = r48233 * r48234;
double r48236 = /* ERROR: no complex support in C */;
double r48237 = /* ERROR: no complex support in C */;
return r48237;
}
double f(double x, double y) {
double r48238 = x;
double r48239 = exp(r48238);
double r48240 = -r48238;
double r48241 = exp(r48240);
double r48242 = r48239 + r48241;
double r48243 = 2.0;
double r48244 = r48242 / r48243;
double r48245 = y;
double r48246 = cos(r48245);
double r48247 = r48244 * r48246;
double r48248 = 0.3333333333333333;
double r48249 = 3.0;
double r48250 = pow(r48238, r48249);
double r48251 = r48248 * r48250;
double r48252 = 0.016666666666666666;
double r48253 = 5.0;
double r48254 = pow(r48238, r48253);
double r48255 = r48252 * r48254;
double r48256 = 2.0;
double r48257 = r48256 * r48238;
double r48258 = r48255 + r48257;
double r48259 = r48251 + r48258;
double r48260 = r48259 / r48243;
double r48261 = sin(r48245);
double r48262 = r48260 * r48261;
double r48263 = /* ERROR: no complex support in C */;
double r48264 = /* ERROR: no complex support in C */;
return r48264;
}



Bits error versus x



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