Average Error: 0.0 → 0.0
Time: 20.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 r42484 = x;
        double r42485 = exp(r42484);
        double r42486 = -r42484;
        double r42487 = exp(r42486);
        double r42488 = r42485 + r42487;
        double r42489 = 2.0;
        double r42490 = r42488 / r42489;
        double r42491 = y;
        double r42492 = cos(r42491);
        double r42493 = r42490 * r42492;
        double r42494 = r42485 - r42487;
        double r42495 = r42494 / r42489;
        double r42496 = sin(r42491);
        double r42497 = r42495 * r42496;
        double r42498 = /* ERROR: no complex support in C */;
        double r42499 = /* ERROR: no complex support in C */;
        return r42499;
}

double f(double x, double y) {
        double r42500 = x;
        double r42501 = exp(r42500);
        double r42502 = -r42500;
        double r42503 = exp(r42502);
        double r42504 = r42501 + r42503;
        double r42505 = 2.0;
        double r42506 = r42504 / r42505;
        double r42507 = y;
        double r42508 = cos(r42507);
        double r42509 = r42506 * r42508;
        double r42510 = r42501 - r42503;
        double r42511 = r42510 / r42505;
        double r42512 = sin(r42507);
        double r42513 = r42511 * r42512;
        double r42514 = /* ERROR: no complex support in C */;
        double r42515 = /* ERROR: no complex support in C */;
        return r42515;
}

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 2019235 +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)))))