\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}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r64949 = x;
double r64950 = exp(r64949);
double r64951 = -r64949;
double r64952 = exp(r64951);
double r64953 = r64950 + r64952;
double r64954 = 2.0;
double r64955 = r64953 / r64954;
double r64956 = y;
double r64957 = cos(r64956);
double r64958 = r64955 * r64957;
double r64959 = r64950 - r64952;
double r64960 = r64959 / r64954;
double r64961 = sin(r64956);
double r64962 = r64960 * r64961;
double r64963 = /* ERROR: no complex support in C */;
double r64964 = /* ERROR: no complex support in C */;
return r64964;
}
double f(double x, double y) {
double r64965 = x;
double r64966 = exp(r64965);
double r64967 = -r64965;
double r64968 = exp(r64967);
double r64969 = r64966 + r64968;
double r64970 = 2.0;
double r64971 = r64969 / r64970;
double r64972 = y;
double r64973 = cos(r64972);
double r64974 = r64971 * r64973;
double r64975 = 0.3333333333333333;
double r64976 = 3.0;
double r64977 = pow(r64965, r64976);
double r64978 = 0.016666666666666666;
double r64979 = 5.0;
double r64980 = pow(r64965, r64979);
double r64981 = 2.0;
double r64982 = r64981 * r64965;
double r64983 = fma(r64978, r64980, r64982);
double r64984 = fma(r64975, r64977, r64983);
double r64985 = r64984 / r64970;
double r64986 = sin(r64972);
double r64987 = r64985 * r64986;
double r64988 = /* ERROR: no complex support in C */;
double r64989 = /* ERROR: no complex support in C */;
return r64989;
}



Bits error versus x



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