Average Error: 0.0 → 0.0
Time: 17.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{\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 r20791 = x;
        double r20792 = exp(r20791);
        double r20793 = -r20791;
        double r20794 = exp(r20793);
        double r20795 = r20792 + r20794;
        double r20796 = 2.0;
        double r20797 = r20795 / r20796;
        double r20798 = y;
        double r20799 = cos(r20798);
        double r20800 = r20797 * r20799;
        double r20801 = r20792 - r20794;
        double r20802 = r20801 / r20796;
        double r20803 = sin(r20798);
        double r20804 = r20802 * r20803;
        double r20805 = /* ERROR: no complex support in C */;
        double r20806 = /* ERROR: no complex support in C */;
        return r20806;
}

double f(double x, double y) {
        double r20807 = y;
        double r20808 = cos(r20807);
        double r20809 = x;
        double r20810 = exp(r20809);
        double r20811 = r20808 / r20810;
        double r20812 = r20810 * r20808;
        double r20813 = r20811 + r20812;
        double r20814 = 2.0;
        double r20815 = r20813 / r20814;
        return r20815;
}

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

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

    \[\leadsto \frac{\cos y \cdot e^{x} + \color{blue}{\frac{\cos y}{e^{x}}}}{2}\]
  6. 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)))))