Average Error: 0.0 → 0.0
Time: 30.4s
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 r28311 = x;
        double r28312 = exp(r28311);
        double r28313 = -r28311;
        double r28314 = exp(r28313);
        double r28315 = r28312 + r28314;
        double r28316 = 2.0;
        double r28317 = r28315 / r28316;
        double r28318 = y;
        double r28319 = cos(r28318);
        double r28320 = r28317 * r28319;
        double r28321 = r28312 - r28314;
        double r28322 = r28321 / r28316;
        double r28323 = sin(r28318);
        double r28324 = r28322 * r28323;
        double r28325 = /* ERROR: no complex support in C */;
        double r28326 = /* ERROR: no complex support in C */;
        return r28326;
}

double f(double x, double y) {
        double r28327 = x;
        double r28328 = exp(r28327);
        double r28329 = -r28327;
        double r28330 = exp(r28329);
        double r28331 = r28328 + r28330;
        double r28332 = 2.0;
        double r28333 = r28331 / r28332;
        double r28334 = y;
        double r28335 = cos(r28334);
        double r28336 = r28333 * r28335;
        return r28336;
}

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