\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 r51008 = x;
double r51009 = exp(r51008);
double r51010 = -r51008;
double r51011 = exp(r51010);
double r51012 = r51009 + r51011;
double r51013 = 2.0;
double r51014 = r51012 / r51013;
double r51015 = y;
double r51016 = cos(r51015);
double r51017 = r51014 * r51016;
double r51018 = r51009 - r51011;
double r51019 = r51018 / r51013;
double r51020 = sin(r51015);
double r51021 = r51019 * r51020;
double r51022 = /* ERROR: no complex support in C */;
double r51023 = /* ERROR: no complex support in C */;
return r51023;
}
double f(double x, double y) {
double r51024 = x;
double r51025 = exp(r51024);
double r51026 = -r51024;
double r51027 = exp(r51026);
double r51028 = r51025 + r51027;
double r51029 = 2.0;
double r51030 = r51028 / r51029;
double r51031 = y;
double r51032 = cos(r51031);
double r51033 = r51030 * r51032;
double r51034 = 0.3333333333333333;
double r51035 = 3.0;
double r51036 = pow(r51024, r51035);
double r51037 = r51034 * r51036;
double r51038 = 0.016666666666666666;
double r51039 = 5.0;
double r51040 = pow(r51024, r51039);
double r51041 = r51038 * r51040;
double r51042 = 2.0;
double r51043 = r51042 * r51024;
double r51044 = r51041 + r51043;
double r51045 = r51037 + r51044;
double r51046 = r51045 / r51029;
double r51047 = sin(r51031);
double r51048 = r51046 * r51047;
double r51049 = /* ERROR: no complex support in C */;
double r51050 = /* ERROR: no complex support in C */;
return r51050;
}



Bits error versus x



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