Average Error: 0.0 → 0.0
Time: 16.7s
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} + e^{-x}}{2} \cdot \cos y\]
\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} + e^{-x}}{2} \cdot \cos y
double f(double x, double y) {
        double r34037 = x;
        double r34038 = exp(r34037);
        double r34039 = -r34037;
        double r34040 = exp(r34039);
        double r34041 = r34038 + r34040;
        double r34042 = 2.0;
        double r34043 = r34041 / r34042;
        double r34044 = y;
        double r34045 = cos(r34044);
        double r34046 = r34043 * r34045;
        double r34047 = r34038 - r34040;
        double r34048 = r34047 / r34042;
        double r34049 = sin(r34044);
        double r34050 = r34048 * r34049;
        double r34051 = /* ERROR: no complex support in C */;
        double r34052 = /* ERROR: no complex support in C */;
        return r34052;
}

double f(double x, double y) {
        double r34053 = x;
        double r34054 = exp(r34053);
        double r34055 = -r34053;
        double r34056 = exp(r34055);
        double r34057 = r34054 + r34056;
        double r34058 = 2.0;
        double r34059 = r34057 / r34058;
        double r34060 = y;
        double r34061 = cos(r34060);
        double r34062 = r34059 * r34061;
        return r34062;
}

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

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

Reproduce

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