\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({x}^{5}, \frac{1}{60}, x \cdot \left(2 + \frac{1}{3} \cdot \left(x \cdot x\right)\right)\right)}{2} \cdot \sin y i\right))double f(double x, double y) {
double r2025857 = x;
double r2025858 = exp(r2025857);
double r2025859 = -r2025857;
double r2025860 = exp(r2025859);
double r2025861 = r2025858 + r2025860;
double r2025862 = 2.0;
double r2025863 = r2025861 / r2025862;
double r2025864 = y;
double r2025865 = cos(r2025864);
double r2025866 = r2025863 * r2025865;
double r2025867 = r2025858 - r2025860;
double r2025868 = r2025867 / r2025862;
double r2025869 = sin(r2025864);
double r2025870 = r2025868 * r2025869;
double r2025871 = /* ERROR: no complex support in C */;
double r2025872 = /* ERROR: no complex support in C */;
return r2025872;
}
double f(double x, double y) {
double r2025873 = x;
double r2025874 = exp(r2025873);
double r2025875 = -r2025873;
double r2025876 = exp(r2025875);
double r2025877 = r2025874 + r2025876;
double r2025878 = 2.0;
double r2025879 = r2025877 / r2025878;
double r2025880 = y;
double r2025881 = cos(r2025880);
double r2025882 = r2025879 * r2025881;
double r2025883 = 5.0;
double r2025884 = pow(r2025873, r2025883);
double r2025885 = 0.016666666666666666;
double r2025886 = 2.0;
double r2025887 = 0.3333333333333333;
double r2025888 = r2025873 * r2025873;
double r2025889 = r2025887 * r2025888;
double r2025890 = r2025886 + r2025889;
double r2025891 = r2025873 * r2025890;
double r2025892 = fma(r2025884, r2025885, r2025891);
double r2025893 = r2025892 / r2025878;
double r2025894 = sin(r2025880);
double r2025895 = r2025893 * r2025894;
double r2025896 = /* ERROR: no complex support in C */;
double r2025897 = /* ERROR: no complex support in C */;
return r2025897;
}



Bits error versus x



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