\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 r144 = x;
double r145 = exp(r144);
double r146 = -r144;
double r147 = exp(r146);
double r148 = r145 + r147;
double r149 = 2.0;
double r150 = r148 / r149;
double r151 = y;
double r152 = cos(r151);
double r153 = r150 * r152;
double r154 = r145 - r147;
double r155 = r154 / r149;
double r156 = sin(r151);
double r157 = r155 * r156;
double r158 = /* ERROR: no complex support in C */;
double r159 = /* ERROR: no complex support in C */;
return r159;
}
double f(double x, double y) {
double r160 = 0.3333333333333333;
double r161 = x;
double r162 = 3.0;
double r163 = pow(r161, r162);
double r164 = 0.016666666666666666;
double r165 = 5.0;
double r166 = pow(r161, r165);
double r167 = 2.0;
double r168 = r167 * r161;
double r169 = fma(r164, r166, r168);
double r170 = fma(r160, r163, r169);
double r171 = 2.0;
double r172 = r170 / r171;
double r173 = y;
double r174 = sin(r173);
double r175 = r172 * r174;
return r175;
}



Bits error versus x



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