\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{\mathsf{fma}\left(\frac{1}{60}, {x}^{5}, x \cdot 2 + \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r1969828 = x;
double r1969829 = exp(r1969828);
double r1969830 = -r1969828;
double r1969831 = exp(r1969830);
double r1969832 = r1969829 + r1969831;
double r1969833 = 2.0;
double r1969834 = r1969832 / r1969833;
double r1969835 = y;
double r1969836 = cos(r1969835);
double r1969837 = r1969834 * r1969836;
double r1969838 = r1969829 - r1969831;
double r1969839 = r1969838 / r1969833;
double r1969840 = sin(r1969835);
double r1969841 = r1969839 * r1969840;
double r1969842 = /* ERROR: no complex support in C */;
double r1969843 = /* ERROR: no complex support in C */;
return r1969843;
}
double f(double x, double y) {
double r1969844 = x;
double r1969845 = exp(r1969844);
double r1969846 = -r1969844;
double r1969847 = exp(r1969846);
double r1969848 = r1969845 + r1969847;
double r1969849 = 2.0;
double r1969850 = r1969848 / r1969849;
double r1969851 = y;
double r1969852 = cos(r1969851);
double r1969853 = r1969850 * r1969852;
double r1969854 = 0.016666666666666666;
double r1969855 = 5.0;
double r1969856 = pow(r1969844, r1969855);
double r1969857 = 2.0;
double r1969858 = r1969844 * r1969857;
double r1969859 = r1969844 * r1969844;
double r1969860 = 0.3333333333333333;
double r1969861 = r1969859 * r1969860;
double r1969862 = r1969861 * r1969844;
double r1969863 = r1969858 + r1969862;
double r1969864 = fma(r1969854, r1969856, r1969863);
double r1969865 = r1969864 / r1969849;
double r1969866 = sin(r1969851);
double r1969867 = r1969865 * r1969866;
double r1969868 = /* ERROR: no complex support in C */;
double r1969869 = /* ERROR: no complex support in C */;
return r1969869;
}



Bits error versus x



Bits error versus y
Initial program 43.9
Taylor expanded around 0 0.8
Simplified0.8
rmApplied distribute-lft-in0.8
Final simplification0.8
herbie shell --seed 2019168 +o rules:numerics
(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)))))