Average Error: 0.0 → 0.0
Time: 1.6m
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\frac{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}
double f(double x, double y) {
        double r1709764 = x;
        double r1709765 = exp(r1709764);
        double r1709766 = -r1709764;
        double r1709767 = exp(r1709766);
        double r1709768 = r1709765 + r1709767;
        double r1709769 = 2.0;
        double r1709770 = r1709768 / r1709769;
        double r1709771 = y;
        double r1709772 = cos(r1709771);
        double r1709773 = r1709770 * r1709772;
        double r1709774 = r1709765 - r1709767;
        double r1709775 = r1709774 / r1709769;
        double r1709776 = sin(r1709771);
        double r1709777 = r1709775 * r1709776;
        double r1709778 = /* ERROR: no complex support in C */;
        double r1709779 = /* ERROR: no complex support in C */;
        return r1709779;
}

double f(double x, double y) {
        double r1709780 = y;
        double r1709781 = cos(r1709780);
        double r1709782 = x;
        double r1709783 = exp(r1709782);
        double r1709784 = r1709781 / r1709783;
        double r1709785 = r1709783 * r1709781;
        double r1709786 = r1709784 + r1709785;
        double r1709787 = 2.0;
        double r1709788 = r1709786 / r1709787;
        return r1709788;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.0

    \[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{\cos y \cdot e^{x} + \frac{\cos y}{e^{x}}}{2}}\]
  3. Final simplification0.0

    \[\leadsto \frac{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}\]

Reproduce

herbie shell --seed 2019200 
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2.0) (cos y)) (* (/ (- (exp x) (exp (- x))) 2.0) (sin y)))))