Average Error: 0.0 → 0.0
Time: 21.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{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}
double f(double x, double y) {
        double r882472 = x;
        double r882473 = exp(r882472);
        double r882474 = -r882472;
        double r882475 = exp(r882474);
        double r882476 = r882473 + r882475;
        double r882477 = 2.0;
        double r882478 = r882476 / r882477;
        double r882479 = y;
        double r882480 = cos(r882479);
        double r882481 = r882478 * r882480;
        double r882482 = r882473 - r882475;
        double r882483 = r882482 / r882477;
        double r882484 = sin(r882479);
        double r882485 = r882483 * r882484;
        double r882486 = /* ERROR: no complex support in C */;
        double r882487 = /* ERROR: no complex support in C */;
        return r882487;
}

double f(double x, double y) {
        double r882488 = y;
        double r882489 = cos(r882488);
        double r882490 = x;
        double r882491 = exp(r882490);
        double r882492 = r882489 / r882491;
        double r882493 = r882491 * r882489;
        double r882494 = r882492 + r882493;
        double r882495 = 2.0;
        double r882496 = r882494 / r882495;
        return r882496;
}

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{\frac{\cos y}{e^{x}} + \cos y \cdot e^{x}}{2}}\]
  3. Using strategy rm
  4. Applied +-commutative0.0

    \[\leadsto \frac{\color{blue}{\cos y \cdot e^{x} + \frac{\cos y}{e^{x}}}}{2}\]
  5. Final simplification0.0

    \[\leadsto \frac{\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y}{2}\]

Reproduce

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