\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}{60} \cdot {x}^{5} + x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3} + 2\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r2317157 = x;
double r2317158 = exp(r2317157);
double r2317159 = -r2317157;
double r2317160 = exp(r2317159);
double r2317161 = r2317158 + r2317160;
double r2317162 = 2.0;
double r2317163 = r2317161 / r2317162;
double r2317164 = y;
double r2317165 = cos(r2317164);
double r2317166 = r2317163 * r2317165;
double r2317167 = r2317158 - r2317160;
double r2317168 = r2317167 / r2317162;
double r2317169 = sin(r2317164);
double r2317170 = r2317168 * r2317169;
double r2317171 = /* ERROR: no complex support in C */;
double r2317172 = /* ERROR: no complex support in C */;
return r2317172;
}
double f(double x, double y) {
double r2317173 = x;
double r2317174 = exp(r2317173);
double r2317175 = -r2317173;
double r2317176 = exp(r2317175);
double r2317177 = r2317174 + r2317176;
double r2317178 = 2.0;
double r2317179 = r2317177 / r2317178;
double r2317180 = y;
double r2317181 = cos(r2317180);
double r2317182 = r2317179 * r2317181;
double r2317183 = 0.016666666666666666;
double r2317184 = 5.0;
double r2317185 = pow(r2317173, r2317184);
double r2317186 = r2317183 * r2317185;
double r2317187 = r2317173 * r2317173;
double r2317188 = 0.3333333333333333;
double r2317189 = r2317187 * r2317188;
double r2317190 = 2.0;
double r2317191 = r2317189 + r2317190;
double r2317192 = r2317173 * r2317191;
double r2317193 = r2317186 + r2317192;
double r2317194 = r2317193 / r2317178;
double r2317195 = sin(r2317180);
double r2317196 = r2317194 * r2317195;
double r2317197 = /* ERROR: no complex support in C */;
double r2317198 = /* ERROR: no complex support in C */;
return r2317198;
}



Bits error versus x



Bits error versus y
Initial program 43.8
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019170
(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)))))