Average Error: 0.0 → 0.0
Time: 8.0s
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 r83375 = x;
        double r83376 = exp(r83375);
        double r83377 = -r83375;
        double r83378 = exp(r83377);
        double r83379 = r83376 + r83378;
        double r83380 = 2.0;
        double r83381 = r83379 / r83380;
        double r83382 = y;
        double r83383 = cos(r83382);
        double r83384 = r83381 * r83383;
        double r83385 = r83376 - r83378;
        double r83386 = r83385 / r83380;
        double r83387 = sin(r83382);
        double r83388 = r83386 * r83387;
        double r83389 = /* ERROR: no complex support in C */;
        double r83390 = /* ERROR: no complex support in C */;
        return r83390;
}

double f(double x, double y) {
        double r83391 = x;
        double r83392 = exp(r83391);
        double r83393 = -r83391;
        double r83394 = exp(r83393);
        double r83395 = r83392 + r83394;
        double r83396 = 2.0;
        double r83397 = r83395 / r83396;
        double r83398 = y;
        double r83399 = cos(r83398);
        double r83400 = r83397 * r83399;
        return r83400;
}

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. Final simplification0.0

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

Reproduce

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