\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(x, x, \mathsf{fma}\left(\frac{1}{12}, {x}^{4}, 2\right)\right)}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))double f(double x, double y) {
double r33724 = x;
double r33725 = exp(r33724);
double r33726 = -r33724;
double r33727 = exp(r33726);
double r33728 = r33725 + r33727;
double r33729 = 2.0;
double r33730 = r33728 / r33729;
double r33731 = y;
double r33732 = cos(r33731);
double r33733 = r33730 * r33732;
double r33734 = r33725 - r33727;
double r33735 = r33734 / r33729;
double r33736 = sin(r33731);
double r33737 = r33735 * r33736;
double r33738 = /* ERROR: no complex support in C */;
double r33739 = /* ERROR: no complex support in C */;
return r33739;
}
double f(double x, double y) {
double r33740 = x;
double r33741 = 0.08333333333333333;
double r33742 = 4.0;
double r33743 = pow(r33740, r33742);
double r33744 = 2.0;
double r33745 = fma(r33741, r33743, r33744);
double r33746 = fma(r33740, r33740, r33745);
double r33747 = 2.0;
double r33748 = r33746 / r33747;
double r33749 = y;
double r33750 = cos(r33749);
double r33751 = r33748 * r33750;
double r33752 = exp(r33740);
double r33753 = -r33740;
double r33754 = exp(r33753);
double r33755 = r33752 - r33754;
double r33756 = r33755 / r33747;
double r33757 = sin(r33749);
double r33758 = r33756 * r33757;
double r33759 = /* ERROR: no complex support in C */;
double r33760 = /* ERROR: no complex support in C */;
return r33760;
}



Bits error versus x



Bits error versus y
Initial program 0.0
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2020060 +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)))))