\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{2 \cdot x + \left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r66469 = x;
double r66470 = exp(r66469);
double r66471 = -r66469;
double r66472 = exp(r66471);
double r66473 = r66470 + r66472;
double r66474 = 2.0;
double r66475 = r66473 / r66474;
double r66476 = y;
double r66477 = cos(r66476);
double r66478 = r66475 * r66477;
double r66479 = r66470 - r66472;
double r66480 = r66479 / r66474;
double r66481 = sin(r66476);
double r66482 = r66480 * r66481;
double r66483 = /* ERROR: no complex support in C */;
double r66484 = /* ERROR: no complex support in C */;
return r66484;
}
double f(double x, double y) {
double r66485 = x;
double r66486 = exp(r66485);
double r66487 = -r66485;
double r66488 = exp(r66487);
double r66489 = r66486 + r66488;
double r66490 = 2.0;
double r66491 = r66489 / r66490;
double r66492 = y;
double r66493 = cos(r66492);
double r66494 = r66491 * r66493;
double r66495 = 2.0;
double r66496 = r66495 * r66485;
double r66497 = 0.3333333333333333;
double r66498 = 3.0;
double r66499 = pow(r66485, r66498);
double r66500 = r66497 * r66499;
double r66501 = 0.016666666666666666;
double r66502 = 5.0;
double r66503 = pow(r66485, r66502);
double r66504 = r66501 * r66503;
double r66505 = r66500 + r66504;
double r66506 = r66496 + r66505;
double r66507 = r66506 / r66490;
double r66508 = sin(r66492);
double r66509 = r66507 * r66508;
double r66510 = /* ERROR: no complex support in C */;
double r66511 = /* ERROR: no complex support in C */;
return r66511;
}



Bits error versus x



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