\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{\mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right)\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r1294554 = x;
double r1294555 = exp(r1294554);
double r1294556 = -r1294554;
double r1294557 = exp(r1294556);
double r1294558 = r1294555 + r1294557;
double r1294559 = 2.0;
double r1294560 = r1294558 / r1294559;
double r1294561 = y;
double r1294562 = cos(r1294561);
double r1294563 = r1294560 * r1294562;
double r1294564 = r1294555 - r1294557;
double r1294565 = r1294564 / r1294559;
double r1294566 = sin(r1294561);
double r1294567 = r1294565 * r1294566;
double r1294568 = /* ERROR: no complex support in C */;
double r1294569 = /* ERROR: no complex support in C */;
return r1294569;
}
double f(double x, double y) {
double r1294570 = x;
double r1294571 = exp(r1294570);
double r1294572 = -r1294570;
double r1294573 = exp(r1294572);
double r1294574 = r1294571 + r1294573;
double r1294575 = 2.0;
double r1294576 = r1294574 / r1294575;
double r1294577 = y;
double r1294578 = cos(r1294577);
double r1294579 = r1294576 * r1294578;
double r1294580 = 0.016666666666666666;
double r1294581 = 5.0;
double r1294582 = pow(r1294570, r1294581);
double r1294583 = r1294570 * r1294570;
double r1294584 = 0.3333333333333333;
double r1294585 = r1294583 * r1294584;
double r1294586 = r1294585 * r1294570;
double r1294587 = fma(r1294580, r1294582, r1294586);
double r1294588 = fma(r1294575, r1294570, r1294587);
double r1294589 = r1294588 / r1294575;
double r1294590 = sin(r1294577);
double r1294591 = r1294589 * r1294590;
double r1294592 = /* ERROR: no complex support in C */;
double r1294593 = /* ERROR: no complex support in C */;
return r1294593;
}



Bits error versus x



Bits error versus y
Initial program 43.4
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019135 +o rules:numerics
(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)))))