\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{{x}^{2} + \left(\frac{1}{12} \cdot {x}^{4} + 2\right)}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))double f(double x, double y) {
double r29658 = x;
double r29659 = exp(r29658);
double r29660 = -r29658;
double r29661 = exp(r29660);
double r29662 = r29659 + r29661;
double r29663 = 2.0;
double r29664 = r29662 / r29663;
double r29665 = y;
double r29666 = cos(r29665);
double r29667 = r29664 * r29666;
double r29668 = r29659 - r29661;
double r29669 = r29668 / r29663;
double r29670 = sin(r29665);
double r29671 = r29669 * r29670;
double r29672 = /* ERROR: no complex support in C */;
double r29673 = /* ERROR: no complex support in C */;
return r29673;
}
double f(double x, double y) {
double r29674 = x;
double r29675 = 2.0;
double r29676 = pow(r29674, r29675);
double r29677 = 0.08333333333333333;
double r29678 = 4.0;
double r29679 = pow(r29674, r29678);
double r29680 = r29677 * r29679;
double r29681 = r29680 + r29675;
double r29682 = r29676 + r29681;
double r29683 = 2.0;
double r29684 = r29682 / r29683;
double r29685 = y;
double r29686 = cos(r29685);
double r29687 = r29684 * r29686;
double r29688 = exp(r29674);
double r29689 = -r29674;
double r29690 = exp(r29689);
double r29691 = r29688 - r29690;
double r29692 = r29691 / r29683;
double r29693 = sin(r29685);
double r29694 = r29692 * r29693;
double r29695 = /* ERROR: no complex support in C */;
double r29696 = /* ERROR: no complex support in C */;
return r29696;
}



Bits error versus x



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