Average Error: 0.0 → 0.0
Time: 23.3s
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 r46399 = x;
        double r46400 = exp(r46399);
        double r46401 = -r46399;
        double r46402 = exp(r46401);
        double r46403 = r46400 + r46402;
        double r46404 = 2.0;
        double r46405 = r46403 / r46404;
        double r46406 = y;
        double r46407 = cos(r46406);
        double r46408 = r46405 * r46407;
        double r46409 = r46400 - r46402;
        double r46410 = r46409 / r46404;
        double r46411 = sin(r46406);
        double r46412 = r46410 * r46411;
        double r46413 = /* ERROR: no complex support in C */;
        double r46414 = /* ERROR: no complex support in C */;
        return r46414;
}

double f(double x, double y) {
        double r46415 = x;
        double r46416 = exp(r46415);
        double r46417 = -r46415;
        double r46418 = exp(r46417);
        double r46419 = r46416 + r46418;
        double r46420 = 2.0;
        double r46421 = r46419 / r46420;
        double r46422 = y;
        double r46423 = cos(r46422);
        double r46424 = r46421 * r46423;
        return r46424;
}

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