\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({x}^{5}, \frac{1}{60}, x \cdot \left(2 + \frac{1}{3} \cdot \left(x \cdot x\right)\right)\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r2023518 = x;
double r2023519 = exp(r2023518);
double r2023520 = -r2023518;
double r2023521 = exp(r2023520);
double r2023522 = r2023519 + r2023521;
double r2023523 = 2.0;
double r2023524 = r2023522 / r2023523;
double r2023525 = y;
double r2023526 = cos(r2023525);
double r2023527 = r2023524 * r2023526;
double r2023528 = r2023519 - r2023521;
double r2023529 = r2023528 / r2023523;
double r2023530 = sin(r2023525);
double r2023531 = r2023529 * r2023530;
double r2023532 = /* ERROR: no complex support in C */;
double r2023533 = /* ERROR: no complex support in C */;
return r2023533;
}
double f(double x, double y) {
double r2023534 = x;
double r2023535 = exp(r2023534);
double r2023536 = -r2023534;
double r2023537 = exp(r2023536);
double r2023538 = r2023535 + r2023537;
double r2023539 = 2.0;
double r2023540 = r2023538 / r2023539;
double r2023541 = y;
double r2023542 = cos(r2023541);
double r2023543 = r2023540 * r2023542;
double r2023544 = 5.0;
double r2023545 = pow(r2023534, r2023544);
double r2023546 = 0.016666666666666666;
double r2023547 = 2.0;
double r2023548 = 0.3333333333333333;
double r2023549 = r2023534 * r2023534;
double r2023550 = r2023548 * r2023549;
double r2023551 = r2023547 + r2023550;
double r2023552 = r2023534 * r2023551;
double r2023553 = fma(r2023545, r2023546, r2023552);
double r2023554 = r2023553 / r2023539;
double r2023555 = sin(r2023541);
double r2023556 = r2023554 * r2023555;
double r2023557 = /* ERROR: no complex support in C */;
double r2023558 = /* ERROR: no complex support in C */;
return r2023558;
}



Bits error versus x



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