Average Error: 0.0 → 0.0
Time: 2.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 r23976 = x;
        double r23977 = exp(r23976);
        double r23978 = -r23976;
        double r23979 = exp(r23978);
        double r23980 = r23977 + r23979;
        double r23981 = 2.0;
        double r23982 = r23980 / r23981;
        double r23983 = y;
        double r23984 = cos(r23983);
        double r23985 = r23982 * r23984;
        double r23986 = r23977 - r23979;
        double r23987 = r23986 / r23981;
        double r23988 = sin(r23983);
        double r23989 = r23987 * r23988;
        double r23990 = /* ERROR: no complex support in C */;
        double r23991 = /* ERROR: no complex support in C */;
        return r23991;
}

double f(double x, double y) {
        double r23992 = x;
        double r23993 = exp(r23992);
        double r23994 = -r23992;
        double r23995 = exp(r23994);
        double r23996 = r23993 + r23995;
        double r23997 = 2.0;
        double r23998 = r23996 / r23997;
        double r23999 = y;
        double r24000 = cos(r23999);
        double r24001 = r23998 * r24000;
        return r24001;
}

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 2020059 
(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)))))