\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{\mathsf{fma}\left(\frac{1}{60}, {x}^{5}, x \cdot \left(\log \left(e^{\left(x \cdot x\right) \cdot \frac{1}{3}}\right) + 2\right)\right)}{2} i\right))double f(double x, double y) {
double r1653969 = x;
double r1653970 = exp(r1653969);
double r1653971 = -r1653969;
double r1653972 = exp(r1653971);
double r1653973 = r1653970 + r1653972;
double r1653974 = 2.0;
double r1653975 = r1653973 / r1653974;
double r1653976 = y;
double r1653977 = cos(r1653976);
double r1653978 = r1653975 * r1653977;
double r1653979 = r1653970 - r1653972;
double r1653980 = r1653979 / r1653974;
double r1653981 = sin(r1653976);
double r1653982 = r1653980 * r1653981;
double r1653983 = /* ERROR: no complex support in C */;
double r1653984 = /* ERROR: no complex support in C */;
return r1653984;
}
double f(double x, double y) {
double r1653985 = x;
double r1653986 = exp(r1653985);
double r1653987 = -r1653985;
double r1653988 = exp(r1653987);
double r1653989 = r1653986 + r1653988;
double r1653990 = 2.0;
double r1653991 = r1653989 / r1653990;
double r1653992 = y;
double r1653993 = cos(r1653992);
double r1653994 = r1653991 * r1653993;
double r1653995 = sin(r1653992);
double r1653996 = 0.016666666666666666;
double r1653997 = 5.0;
double r1653998 = pow(r1653985, r1653997);
double r1653999 = r1653985 * r1653985;
double r1654000 = 0.3333333333333333;
double r1654001 = r1653999 * r1654000;
double r1654002 = exp(r1654001);
double r1654003 = log(r1654002);
double r1654004 = 2.0;
double r1654005 = r1654003 + r1654004;
double r1654006 = r1653985 * r1654005;
double r1654007 = fma(r1653996, r1653998, r1654006);
double r1654008 = r1654007 / r1653990;
double r1654009 = r1653995 * r1654008;
double r1654010 = /* ERROR: no complex support in C */;
double r1654011 = /* ERROR: no complex support in C */;
return r1654011;
}



Bits error versus x



Bits error versus y
Initial program 43.4
Taylor expanded around 0 0.7
Simplified0.7
rmApplied add-log-exp0.7
Final simplification0.7
herbie shell --seed 2019192 +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)))))