Average Error: 0.0 → 0.0
Time: 24.9s
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{1}{2} \cdot \left(\left(e^{x} + \frac{1}{e^{x}}\right) \cdot \cos y\right)\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{1}{2} \cdot \left(\left(e^{x} + \frac{1}{e^{x}}\right) \cdot \cos y\right)
double f(double x, double y) {
        double r2035296 = x;
        double r2035297 = exp(r2035296);
        double r2035298 = -r2035296;
        double r2035299 = exp(r2035298);
        double r2035300 = r2035297 + r2035299;
        double r2035301 = 2.0;
        double r2035302 = r2035300 / r2035301;
        double r2035303 = y;
        double r2035304 = cos(r2035303);
        double r2035305 = r2035302 * r2035304;
        double r2035306 = r2035297 - r2035299;
        double r2035307 = r2035306 / r2035301;
        double r2035308 = sin(r2035303);
        double r2035309 = r2035307 * r2035308;
        double r2035310 = /* ERROR: no complex support in C */;
        double r2035311 = /* ERROR: no complex support in C */;
        return r2035311;
}

double f(double x, double y) {
        double r2035312 = 0.5;
        double r2035313 = x;
        double r2035314 = exp(r2035313);
        double r2035315 = 1.0;
        double r2035316 = r2035315 / r2035314;
        double r2035317 = r2035314 + r2035316;
        double r2035318 = y;
        double r2035319 = cos(r2035318);
        double r2035320 = r2035317 * r2035319;
        double r2035321 = r2035312 * r2035320;
        return r2035321;
}

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{1}{2} \cdot \left(\frac{\cos y}{e^{x}} + \cos y \cdot e^{x}\right)}\]
  3. Using strategy rm
  4. Applied div-inv0.0

    \[\leadsto \frac{1}{2} \cdot \left(\color{blue}{\cos y \cdot \frac{1}{e^{x}}} + \cos y \cdot e^{x}\right)\]
  5. Applied distribute-lft-out0.0

    \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(\cos y \cdot \left(\frac{1}{e^{x}} + e^{x}\right)\right)}\]
  6. Final simplification0.0

    \[\leadsto \frac{1}{2} \cdot \left(\left(e^{x} + \frac{1}{e^{x}}\right) \cdot \cos y\right)\]

Reproduce

herbie shell --seed 2019158 
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))