Average Error: 0.0 → 0.0
Time: 21.6s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r38351 = x;
        double r38352 = exp(r38351);
        double r38353 = -r38351;
        double r38354 = exp(r38353);
        double r38355 = r38352 + r38354;
        double r38356 = 2.0;
        double r38357 = r38355 / r38356;
        double r38358 = y;
        double r38359 = cos(r38358);
        double r38360 = r38357 * r38359;
        double r38361 = r38352 - r38354;
        double r38362 = r38361 / r38356;
        double r38363 = sin(r38358);
        double r38364 = r38362 * r38363;
        double r38365 = /* ERROR: no complex support in C */;
        double r38366 = /* ERROR: no complex support in C */;
        return r38366;
}

double f(double x, double y) {
        double r38367 = x;
        double r38368 = exp(r38367);
        double r38369 = -r38367;
        double r38370 = exp(r38369);
        double r38371 = r38368 + r38370;
        double r38372 = 2.0;
        double r38373 = r38371 / r38372;
        double r38374 = y;
        double r38375 = cos(r38374);
        double r38376 = r38373 * r38375;
        double r38377 = r38368 - r38370;
        double r38378 = r38377 / r38372;
        double r38379 = sin(r38374);
        double r38380 = r38378 * r38379;
        double r38381 = /* ERROR: no complex support in C */;
        double r38382 = /* ERROR: no complex support in C */;
        return r38382;
}

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 \Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

Reproduce

herbie shell --seed 2019304 +o rules:numerics
(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)))))