Average Error: 0.0 → 0.0
Time: 22.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 r33393 = x;
        double r33394 = exp(r33393);
        double r33395 = -r33393;
        double r33396 = exp(r33395);
        double r33397 = r33394 + r33396;
        double r33398 = 2.0;
        double r33399 = r33397 / r33398;
        double r33400 = y;
        double r33401 = cos(r33400);
        double r33402 = r33399 * r33401;
        double r33403 = r33394 - r33396;
        double r33404 = r33403 / r33398;
        double r33405 = sin(r33400);
        double r33406 = r33404 * r33405;
        double r33407 = /* ERROR: no complex support in C */;
        double r33408 = /* ERROR: no complex support in C */;
        return r33408;
}

double f(double x, double y) {
        double r33409 = x;
        double r33410 = exp(r33409);
        double r33411 = -r33409;
        double r33412 = exp(r33411);
        double r33413 = r33410 + r33412;
        double r33414 = 2.0;
        double r33415 = r33413 / r33414;
        double r33416 = y;
        double r33417 = cos(r33416);
        double r33418 = r33415 * r33417;
        return r33418;
}

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