\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 + \sin y \cdot \frac{\frac{1}{60} \cdot {x}^{5} + \left(x \cdot 2 + {x}^{3} \cdot \frac{1}{3}\right)}{2} i\right))double f(double x, double y) {
double r64768 = x;
double r64769 = exp(r64768);
double r64770 = -r64768;
double r64771 = exp(r64770);
double r64772 = r64769 + r64771;
double r64773 = 2.0;
double r64774 = r64772 / r64773;
double r64775 = y;
double r64776 = cos(r64775);
double r64777 = r64774 * r64776;
double r64778 = r64769 - r64771;
double r64779 = r64778 / r64773;
double r64780 = sin(r64775);
double r64781 = r64779 * r64780;
double r64782 = /* ERROR: no complex support in C */;
double r64783 = /* ERROR: no complex support in C */;
return r64783;
}
double f(double x, double y) {
double r64784 = x;
double r64785 = exp(r64784);
double r64786 = -r64784;
double r64787 = exp(r64786);
double r64788 = r64785 + r64787;
double r64789 = 2.0;
double r64790 = r64788 / r64789;
double r64791 = y;
double r64792 = cos(r64791);
double r64793 = r64790 * r64792;
double r64794 = sin(r64791);
double r64795 = 0.016666666666666666;
double r64796 = 5.0;
double r64797 = pow(r64784, r64796);
double r64798 = r64795 * r64797;
double r64799 = 2.0;
double r64800 = r64784 * r64799;
double r64801 = 3.0;
double r64802 = pow(r64784, r64801);
double r64803 = 0.3333333333333333;
double r64804 = r64802 * r64803;
double r64805 = r64800 + r64804;
double r64806 = r64798 + r64805;
double r64807 = r64806 / r64789;
double r64808 = r64794 * r64807;
double r64809 = /* ERROR: no complex support in C */;
double r64810 = /* ERROR: no complex support in C */;
return r64810;
}



Bits error versus x



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