\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin ydouble f(double x, double y) {
double r51545 = x;
double r51546 = exp(r51545);
double r51547 = -r51545;
double r51548 = exp(r51547);
double r51549 = r51546 + r51548;
double r51550 = 2.0;
double r51551 = r51549 / r51550;
double r51552 = y;
double r51553 = cos(r51552);
double r51554 = r51551 * r51553;
double r51555 = r51546 - r51548;
double r51556 = r51555 / r51550;
double r51557 = sin(r51552);
double r51558 = r51556 * r51557;
double r51559 = /* ERROR: no complex support in C */;
double r51560 = /* ERROR: no complex support in C */;
return r51560;
}
double f(double x, double y) {
double r51561 = 0.3333333333333333;
double r51562 = x;
double r51563 = 3.0;
double r51564 = pow(r51562, r51563);
double r51565 = 0.016666666666666666;
double r51566 = 5.0;
double r51567 = pow(r51562, r51566);
double r51568 = 2.0;
double r51569 = r51568 * r51562;
double r51570 = fma(r51565, r51567, r51569);
double r51571 = fma(r51561, r51564, r51570);
double r51572 = 2.0;
double r51573 = r51571 / r51572;
double r51574 = y;
double r51575 = sin(r51574);
double r51576 = r51573 * r51575;
return r51576;
}



Bits error versus x



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