Average Error: 0.0 → 0.0
Time: 20.1s
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{e^{x} \cdot \cos y + \frac{\cos y}{e^{x}}}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{e^{x} \cdot \cos y + \frac{\cos y}{e^{x}}}{2}
double f(double x, double y) {
        double r1989695 = x;
        double r1989696 = exp(r1989695);
        double r1989697 = -r1989695;
        double r1989698 = exp(r1989697);
        double r1989699 = r1989696 + r1989698;
        double r1989700 = 2.0;
        double r1989701 = r1989699 / r1989700;
        double r1989702 = y;
        double r1989703 = cos(r1989702);
        double r1989704 = r1989701 * r1989703;
        double r1989705 = r1989696 - r1989698;
        double r1989706 = r1989705 / r1989700;
        double r1989707 = sin(r1989702);
        double r1989708 = r1989706 * r1989707;
        double r1989709 = /* ERROR: no complex support in C */;
        double r1989710 = /* ERROR: no complex support in C */;
        return r1989710;
}

double f(double x, double y) {
        double r1989711 = x;
        double r1989712 = exp(r1989711);
        double r1989713 = y;
        double r1989714 = cos(r1989713);
        double r1989715 = r1989712 * r1989714;
        double r1989716 = r1989714 / r1989712;
        double r1989717 = r1989715 + r1989716;
        double r1989718 = 2.0;
        double r1989719 = r1989717 / r1989718;
        return r1989719;
}

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{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}}\]
  3. Final simplification0.0

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

Reproduce

herbie shell --seed 2019172 
(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)))))