\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 r48805 = x;
double r48806 = exp(r48805);
double r48807 = -r48805;
double r48808 = exp(r48807);
double r48809 = r48806 + r48808;
double r48810 = 2.0;
double r48811 = r48809 / r48810;
double r48812 = y;
double r48813 = cos(r48812);
double r48814 = r48811 * r48813;
double r48815 = r48806 - r48808;
double r48816 = r48815 / r48810;
double r48817 = sin(r48812);
double r48818 = r48816 * r48817;
double r48819 = /* ERROR: no complex support in C */;
double r48820 = /* ERROR: no complex support in C */;
return r48820;
}
double f(double x, double y) {
double r48821 = x;
double r48822 = exp(r48821);
double r48823 = -r48821;
double r48824 = exp(r48823);
double r48825 = r48822 + r48824;
double r48826 = 2.0;
double r48827 = r48825 / r48826;
double r48828 = y;
double r48829 = cos(r48828);
double r48830 = r48827 * r48829;
double r48831 = 0.3333333333333333;
double r48832 = 3.0;
double r48833 = pow(r48821, r48832);
double r48834 = r48831 * r48833;
double r48835 = 0.016666666666666666;
double r48836 = 5.0;
double r48837 = pow(r48821, r48836);
double r48838 = r48835 * r48837;
double r48839 = 2.0;
double r48840 = r48839 * r48821;
double r48841 = r48838 + r48840;
double r48842 = r48834 + r48841;
double r48843 = r48842 / r48826;
double r48844 = sin(r48828);
double r48845 = r48843 * r48844;
double r48846 = /* ERROR: no complex support in C */;
double r48847 = /* ERROR: no complex support in C */;
return r48847;
}



Bits error versus x



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