\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\Re(\left(\frac{\mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, e^{-x}\right)}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))double f(double x, double y) {
double r45050 = x;
double r45051 = exp(r45050);
double r45052 = -r45050;
double r45053 = exp(r45052);
double r45054 = r45051 + r45053;
double r45055 = 2.0;
double r45056 = r45054 / r45055;
double r45057 = y;
double r45058 = cos(r45057);
double r45059 = r45056 * r45058;
double r45060 = r45051 - r45053;
double r45061 = r45060 / r45055;
double r45062 = sin(r45057);
double r45063 = r45061 * r45062;
double r45064 = /* ERROR: no complex support in C */;
double r45065 = /* ERROR: no complex support in C */;
return r45065;
}
double f(double x, double y) {
double r45066 = x;
double r45067 = exp(r45066);
double r45068 = sqrt(r45067);
double r45069 = -r45066;
double r45070 = exp(r45069);
double r45071 = fma(r45068, r45068, r45070);
double r45072 = 2.0;
double r45073 = r45071 / r45072;
double r45074 = y;
double r45075 = cos(r45074);
double r45076 = r45073 * r45075;
double r45077 = r45067 - r45070;
double r45078 = r45077 / r45072;
double r45079 = sin(r45074);
double r45080 = r45078 * r45079;
double r45081 = /* ERROR: no complex support in C */;
double r45082 = /* ERROR: no complex support in C */;
return r45082;
}



Bits error versus x



Bits error versus y
Initial program 0.0
rmApplied add-sqr-sqrt0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019344 +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)))))