\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin ydouble f(double x, double y) {
double r42809 = x;
double r42810 = exp(r42809);
double r42811 = -r42809;
double r42812 = exp(r42811);
double r42813 = r42810 + r42812;
double r42814 = 2.0;
double r42815 = r42813 / r42814;
double r42816 = y;
double r42817 = cos(r42816);
double r42818 = r42815 * r42817;
double r42819 = r42810 - r42812;
double r42820 = r42819 / r42814;
double r42821 = sin(r42816);
double r42822 = r42820 * r42821;
double r42823 = /* ERROR: no complex support in C */;
double r42824 = /* ERROR: no complex support in C */;
return r42824;
}
double f(double x, double y) {
double r42825 = 0.3333333333333333;
double r42826 = x;
double r42827 = 3.0;
double r42828 = pow(r42826, r42827);
double r42829 = r42825 * r42828;
double r42830 = 0.016666666666666666;
double r42831 = 5.0;
double r42832 = pow(r42826, r42831);
double r42833 = r42830 * r42832;
double r42834 = 2.0;
double r42835 = r42834 * r42826;
double r42836 = r42833 + r42835;
double r42837 = r42829 + r42836;
double r42838 = 2.0;
double r42839 = r42837 / r42838;
double r42840 = y;
double r42841 = sin(r42840);
double r42842 = r42839 * r42841;
return r42842;
}



Bits error versus x



Bits error versus y
Initial program 43.4
Simplified43.4
Taylor expanded around 0 0.9
Final simplification0.9
herbie shell --seed 2020059
(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)))))