Average Error: 0.0 → 0.0
Time: 23.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{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}
double f(double x, double y) {
        double r701677 = x;
        double r701678 = exp(r701677);
        double r701679 = -r701677;
        double r701680 = exp(r701679);
        double r701681 = r701678 + r701680;
        double r701682 = 2.0;
        double r701683 = r701681 / r701682;
        double r701684 = y;
        double r701685 = cos(r701684);
        double r701686 = r701683 * r701685;
        double r701687 = r701678 - r701680;
        double r701688 = r701687 / r701682;
        double r701689 = sin(r701684);
        double r701690 = r701688 * r701689;
        double r701691 = /* ERROR: no complex support in C */;
        double r701692 = /* ERROR: no complex support in C */;
        return r701692;
}

double f(double x, double y) {
        double r701693 = y;
        double r701694 = cos(r701693);
        double r701695 = x;
        double r701696 = exp(r701695);
        double r701697 = r701694 / r701696;
        double r701698 = fma(r701694, r701696, r701697);
        double r701699 = 2.0;
        double r701700 = r701698 / r701699;
        return r701700;
}

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{(\left(\cos y\right) \cdot \left(e^{x}\right) + \left(\frac{\cos y}{e^{x}}\right))_*}{2}}\]
  3. Final simplification0.0

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

Reproduce

herbie shell --seed 2019112 +o rules:numerics
(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)))))