Average Error: 0.0 → 0.0
Time: 11.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 r37271 = x;
        double r37272 = exp(r37271);
        double r37273 = -r37271;
        double r37274 = exp(r37273);
        double r37275 = r37272 + r37274;
        double r37276 = 2.0;
        double r37277 = r37275 / r37276;
        double r37278 = y;
        double r37279 = cos(r37278);
        double r37280 = r37277 * r37279;
        double r37281 = r37272 - r37274;
        double r37282 = r37281 / r37276;
        double r37283 = sin(r37278);
        double r37284 = r37282 * r37283;
        double r37285 = /* ERROR: no complex support in C */;
        double r37286 = /* ERROR: no complex support in C */;
        return r37286;
}

double f(double x, double y) {
        double r37287 = x;
        double r37288 = exp(r37287);
        double r37289 = -r37287;
        double r37290 = exp(r37289);
        double r37291 = r37288 + r37290;
        double r37292 = 2.0;
        double r37293 = r37291 / r37292;
        double r37294 = y;
        double r37295 = cos(r37294);
        double r37296 = r37293 * r37295;
        return r37296;
}

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