\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 r61284 = x;
double r61285 = exp(r61284);
double r61286 = -r61284;
double r61287 = exp(r61286);
double r61288 = r61285 + r61287;
double r61289 = 2.0;
double r61290 = r61288 / r61289;
double r61291 = y;
double r61292 = cos(r61291);
double r61293 = r61290 * r61292;
double r61294 = r61285 - r61287;
double r61295 = r61294 / r61289;
double r61296 = sin(r61291);
double r61297 = r61295 * r61296;
double r61298 = /* ERROR: no complex support in C */;
double r61299 = /* ERROR: no complex support in C */;
return r61299;
}
double f(double x, double y) {
double r61300 = x;
double r61301 = exp(r61300);
double r61302 = -r61300;
double r61303 = exp(r61302);
double r61304 = r61301 + r61303;
double r61305 = 2.0;
double r61306 = r61304 / r61305;
double r61307 = y;
double r61308 = cos(r61307);
double r61309 = r61306 * r61308;
double r61310 = 0.3333333333333333;
double r61311 = 3.0;
double r61312 = pow(r61300, r61311);
double r61313 = r61310 * r61312;
double r61314 = 0.016666666666666666;
double r61315 = 5.0;
double r61316 = pow(r61300, r61315);
double r61317 = r61314 * r61316;
double r61318 = 2.0;
double r61319 = r61318 * r61300;
double r61320 = r61317 + r61319;
double r61321 = r61313 + r61320;
double r61322 = r61321 / r61305;
double r61323 = sin(r61307);
double r61324 = r61322 * r61323;
double r61325 = /* ERROR: no complex support in C */;
double r61326 = /* ERROR: no complex support in C */;
return r61326;
}



Bits error versus x



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