\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 + \sin y \cdot \frac{\frac{1}{60} \cdot {x}^{5} + \left(x \cdot 2 + {x}^{3} \cdot \frac{1}{3}\right)}{2} i\right))double f(double x, double y) {
double r66035 = x;
double r66036 = exp(r66035);
double r66037 = -r66035;
double r66038 = exp(r66037);
double r66039 = r66036 + r66038;
double r66040 = 2.0;
double r66041 = r66039 / r66040;
double r66042 = y;
double r66043 = cos(r66042);
double r66044 = r66041 * r66043;
double r66045 = r66036 - r66038;
double r66046 = r66045 / r66040;
double r66047 = sin(r66042);
double r66048 = r66046 * r66047;
double r66049 = /* ERROR: no complex support in C */;
double r66050 = /* ERROR: no complex support in C */;
return r66050;
}
double f(double x, double y) {
double r66051 = x;
double r66052 = exp(r66051);
double r66053 = -r66051;
double r66054 = exp(r66053);
double r66055 = r66052 + r66054;
double r66056 = 2.0;
double r66057 = r66055 / r66056;
double r66058 = y;
double r66059 = cos(r66058);
double r66060 = r66057 * r66059;
double r66061 = sin(r66058);
double r66062 = 0.016666666666666666;
double r66063 = 5.0;
double r66064 = pow(r66051, r66063);
double r66065 = r66062 * r66064;
double r66066 = 2.0;
double r66067 = r66051 * r66066;
double r66068 = 3.0;
double r66069 = pow(r66051, r66068);
double r66070 = 0.3333333333333333;
double r66071 = r66069 * r66070;
double r66072 = r66067 + r66071;
double r66073 = r66065 + r66072;
double r66074 = r66073 / r66056;
double r66075 = r66061 * r66074;
double r66076 = /* ERROR: no complex support in C */;
double r66077 = /* ERROR: no complex support in C */;
return r66077;
}



Bits error versus x



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