\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(\frac{1}{60}, {x}^{5}, \mathsf{fma}\left(\left(x \cdot x\right) \cdot \frac{1}{3}, x, x \cdot 2\right)\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r1868842 = x;
double r1868843 = exp(r1868842);
double r1868844 = -r1868842;
double r1868845 = exp(r1868844);
double r1868846 = r1868843 + r1868845;
double r1868847 = 2.0;
double r1868848 = r1868846 / r1868847;
double r1868849 = y;
double r1868850 = cos(r1868849);
double r1868851 = r1868848 * r1868850;
double r1868852 = r1868843 - r1868845;
double r1868853 = r1868852 / r1868847;
double r1868854 = sin(r1868849);
double r1868855 = r1868853 * r1868854;
double r1868856 = /* ERROR: no complex support in C */;
double r1868857 = /* ERROR: no complex support in C */;
return r1868857;
}
double f(double x, double y) {
double r1868858 = x;
double r1868859 = exp(r1868858);
double r1868860 = -r1868858;
double r1868861 = exp(r1868860);
double r1868862 = r1868859 + r1868861;
double r1868863 = 2.0;
double r1868864 = r1868862 / r1868863;
double r1868865 = y;
double r1868866 = cos(r1868865);
double r1868867 = r1868864 * r1868866;
double r1868868 = 0.016666666666666666;
double r1868869 = 5.0;
double r1868870 = pow(r1868858, r1868869);
double r1868871 = r1868858 * r1868858;
double r1868872 = 0.3333333333333333;
double r1868873 = r1868871 * r1868872;
double r1868874 = 2.0;
double r1868875 = r1868858 * r1868874;
double r1868876 = fma(r1868873, r1868858, r1868875);
double r1868877 = fma(r1868868, r1868870, r1868876);
double r1868878 = r1868877 / r1868863;
double r1868879 = sin(r1868865);
double r1868880 = r1868878 * r1868879;
double r1868881 = /* ERROR: no complex support in C */;
double r1868882 = /* ERROR: no complex support in C */;
return r1868882;
}



Bits error versus x



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