\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 r48660 = x;
double r48661 = exp(r48660);
double r48662 = -r48660;
double r48663 = exp(r48662);
double r48664 = r48661 + r48663;
double r48665 = 2.0;
double r48666 = r48664 / r48665;
double r48667 = y;
double r48668 = cos(r48667);
double r48669 = r48666 * r48668;
double r48670 = r48661 - r48663;
double r48671 = r48670 / r48665;
double r48672 = sin(r48667);
double r48673 = r48671 * r48672;
double r48674 = /* ERROR: no complex support in C */;
double r48675 = /* ERROR: no complex support in C */;
return r48675;
}
double f(double x, double y) {
double r48676 = x;
double r48677 = exp(r48676);
double r48678 = -r48676;
double r48679 = exp(r48678);
double r48680 = r48677 + r48679;
double r48681 = 2.0;
double r48682 = r48680 / r48681;
double r48683 = y;
double r48684 = cos(r48683);
double r48685 = r48682 * r48684;
double r48686 = 0.3333333333333333;
double r48687 = 3.0;
double r48688 = pow(r48676, r48687);
double r48689 = r48686 * r48688;
double r48690 = 0.016666666666666666;
double r48691 = 5.0;
double r48692 = pow(r48676, r48691);
double r48693 = r48690 * r48692;
double r48694 = 2.0;
double r48695 = r48694 * r48676;
double r48696 = r48693 + r48695;
double r48697 = r48689 + r48696;
double r48698 = r48697 / r48681;
double r48699 = sin(r48683);
double r48700 = r48698 * r48699;
double r48701 = /* ERROR: no complex support in C */;
double r48702 = /* ERROR: no complex support in C */;
return r48702;
}



Bits error versus x



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