Average Error: 0.0 → 0.0
Time: 28.2s
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 r41252 = x;
        double r41253 = exp(r41252);
        double r41254 = -r41252;
        double r41255 = exp(r41254);
        double r41256 = r41253 + r41255;
        double r41257 = 2.0;
        double r41258 = r41256 / r41257;
        double r41259 = y;
        double r41260 = cos(r41259);
        double r41261 = r41258 * r41260;
        double r41262 = r41253 - r41255;
        double r41263 = r41262 / r41257;
        double r41264 = sin(r41259);
        double r41265 = r41263 * r41264;
        double r41266 = /* ERROR: no complex support in C */;
        double r41267 = /* ERROR: no complex support in C */;
        return r41267;
}

double f(double x, double y) {
        double r41268 = x;
        double r41269 = exp(r41268);
        double r41270 = -r41268;
        double r41271 = exp(r41270);
        double r41272 = r41269 + r41271;
        double r41273 = 2.0;
        double r41274 = r41272 / r41273;
        double r41275 = y;
        double r41276 = cos(r41275);
        double r41277 = r41274 * r41276;
        return r41277;
}

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