\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, e^{-x}\right)}{2} \cdot \cos ydouble f(double x, double y) {
double r29906 = x;
double r29907 = exp(r29906);
double r29908 = -r29906;
double r29909 = exp(r29908);
double r29910 = r29907 + r29909;
double r29911 = 2.0;
double r29912 = r29910 / r29911;
double r29913 = y;
double r29914 = cos(r29913);
double r29915 = r29912 * r29914;
double r29916 = r29907 - r29909;
double r29917 = r29916 / r29911;
double r29918 = sin(r29913);
double r29919 = r29917 * r29918;
double r29920 = /* ERROR: no complex support in C */;
double r29921 = /* ERROR: no complex support in C */;
return r29921;
}
double f(double x, double y) {
double r29922 = x;
double r29923 = exp(r29922);
double r29924 = sqrt(r29923);
double r29925 = -r29922;
double r29926 = exp(r29925);
double r29927 = fma(r29924, r29924, r29926);
double r29928 = 2.0;
double r29929 = r29927 / r29928;
double r29930 = y;
double r29931 = cos(r29930);
double r29932 = r29929 * r29931;
return r29932;
}



Bits error versus x



Bits error versus y
Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2020024 +o rules:numerics
(FPCore (x y)
:name "Euler formula real part (p55)"
:precision binary64
(re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))