\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 r43102 = x;
double r43103 = exp(r43102);
double r43104 = -r43102;
double r43105 = exp(r43104);
double r43106 = r43103 + r43105;
double r43107 = 2.0;
double r43108 = r43106 / r43107;
double r43109 = y;
double r43110 = cos(r43109);
double r43111 = r43108 * r43110;
double r43112 = r43103 - r43105;
double r43113 = r43112 / r43107;
double r43114 = sin(r43109);
double r43115 = r43113 * r43114;
double r43116 = /* ERROR: no complex support in C */;
double r43117 = /* ERROR: no complex support in C */;
return r43117;
}
double f(double x, double y) {
double r43118 = x;
double r43119 = exp(r43118);
double r43120 = -r43118;
double r43121 = exp(r43120);
double r43122 = r43119 + r43121;
double r43123 = 2.0;
double r43124 = r43122 / r43123;
double r43125 = y;
double r43126 = cos(r43125);
double r43127 = r43124 * r43126;
double r43128 = 0.3333333333333333;
double r43129 = 3.0;
double r43130 = pow(r43118, r43129);
double r43131 = r43128 * r43130;
double r43132 = 0.016666666666666666;
double r43133 = 5.0;
double r43134 = pow(r43118, r43133);
double r43135 = r43132 * r43134;
double r43136 = 2.0;
double r43137 = r43136 * r43118;
double r43138 = r43135 + r43137;
double r43139 = r43131 + r43138;
double r43140 = r43139 / r43123;
double r43141 = sin(r43125);
double r43142 = r43140 * r43141;
double r43143 = /* ERROR: no complex support in C */;
double r43144 = /* ERROR: no complex support in C */;
return r43144;
}



Bits error versus x



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