\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 r3547021 = x;
double r3547022 = exp(r3547021);
double r3547023 = -r3547021;
double r3547024 = exp(r3547023);
double r3547025 = r3547022 + r3547024;
double r3547026 = 2.0;
double r3547027 = r3547025 / r3547026;
double r3547028 = y;
double r3547029 = cos(r3547028);
double r3547030 = r3547027 * r3547029;
double r3547031 = r3547022 - r3547024;
double r3547032 = r3547031 / r3547026;
double r3547033 = sin(r3547028);
double r3547034 = r3547032 * r3547033;
double r3547035 = /* ERROR: no complex support in C */;
double r3547036 = /* ERROR: no complex support in C */;
return r3547036;
}
double f(double x, double y) {
double r3547037 = x;
double r3547038 = exp(r3547037);
double r3547039 = -r3547037;
double r3547040 = exp(r3547039);
double r3547041 = r3547038 + r3547040;
double r3547042 = 2.0;
double r3547043 = r3547041 / r3547042;
double r3547044 = y;
double r3547045 = cos(r3547044);
double r3547046 = r3547043 * r3547045;
double r3547047 = 5.0;
double r3547048 = pow(r3547037, r3547047);
double r3547049 = 0.016666666666666666;
double r3547050 = 2.0;
double r3547051 = 0.3333333333333333;
double r3547052 = r3547037 * r3547037;
double r3547053 = r3547051 * r3547052;
double r3547054 = r3547050 + r3547053;
double r3547055 = r3547037 * r3547054;
double r3547056 = fma(r3547048, r3547049, r3547055);
double r3547057 = r3547056 / r3547042;
double r3547058 = sin(r3547044);
double r3547059 = r3547057 * r3547058;
double r3547060 = /* ERROR: no complex support in C */;
double r3547061 = /* ERROR: no complex support in C */;
return r3547061;
}



Bits error versus x



Bits error versus y
Initial program 43.3
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019173 +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)))))