\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{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r104866 = x;
double r104867 = exp(r104866);
double r104868 = -r104866;
double r104869 = exp(r104868);
double r104870 = r104867 + r104869;
double r104871 = 2.0;
double r104872 = r104870 / r104871;
double r104873 = y;
double r104874 = cos(r104873);
double r104875 = r104872 * r104874;
double r104876 = r104867 - r104869;
double r104877 = r104876 / r104871;
double r104878 = sin(r104873);
double r104879 = r104877 * r104878;
double r104880 = /* ERROR: no complex support in C */;
double r104881 = /* ERROR: no complex support in C */;
return r104881;
}
double f(double x, double y) {
double r104882 = x;
double r104883 = exp(r104882);
double r104884 = -r104882;
double r104885 = exp(r104884);
double r104886 = r104883 + r104885;
double r104887 = 2.0;
double r104888 = r104886 / r104887;
double r104889 = y;
double r104890 = cos(r104889);
double r104891 = r104888 * r104890;
double r104892 = 0.3333333333333333;
double r104893 = 3.0;
double r104894 = pow(r104882, r104893);
double r104895 = r104892 * r104894;
double r104896 = 0.016666666666666666;
double r104897 = 5.0;
double r104898 = pow(r104882, r104897);
double r104899 = r104896 * r104898;
double r104900 = 2.0;
double r104901 = r104900 * r104882;
double r104902 = r104899 + r104901;
double r104903 = r104895 + r104902;
double r104904 = r104903 / r104887;
double r104905 = sin(r104889);
double r104906 = r104904 * r104905;
double r104907 = /* ERROR: no complex support in C */;
double r104908 = /* ERROR: no complex support in C */;
return r104908;
}



Bits error versus x



Bits error versus y
Initial program 43.4
Taylor expanded around 0 0.8
Final simplification0.8
herbie shell --seed 2019354
(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)))))