\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\sin y}{2} \cdot \mathsf{fma}\left(2, x, \mathsf{fma}\left(\frac{1}{3}, {x}^{3}, {x}^{5} \cdot \frac{1}{60}\right)\right)double f(double x, double y) {
double r53361 = x;
double r53362 = exp(r53361);
double r53363 = -r53361;
double r53364 = exp(r53363);
double r53365 = r53362 + r53364;
double r53366 = 2.0;
double r53367 = r53365 / r53366;
double r53368 = y;
double r53369 = cos(r53368);
double r53370 = r53367 * r53369;
double r53371 = r53362 - r53364;
double r53372 = r53371 / r53366;
double r53373 = sin(r53368);
double r53374 = r53372 * r53373;
double r53375 = /* ERROR: no complex support in C */;
double r53376 = /* ERROR: no complex support in C */;
return r53376;
}
double f(double x, double y) {
double r53377 = y;
double r53378 = sin(r53377);
double r53379 = 2.0;
double r53380 = r53378 / r53379;
double r53381 = 2.0;
double r53382 = x;
double r53383 = 0.3333333333333333;
double r53384 = 3.0;
double r53385 = pow(r53382, r53384);
double r53386 = 5.0;
double r53387 = pow(r53382, r53386);
double r53388 = 0.016666666666666666;
double r53389 = r53387 * r53388;
double r53390 = fma(r53383, r53385, r53389);
double r53391 = fma(r53381, r53382, r53390);
double r53392 = r53380 * r53391;
return r53392;
}



Bits error versus x



Bits error versus y
Initial program 43.5
Simplified43.5
Taylor expanded around 0 0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019174 +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)))))