Average Error: 0.0 → 0.0
Time: 13.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 r36784 = x;
        double r36785 = exp(r36784);
        double r36786 = -r36784;
        double r36787 = exp(r36786);
        double r36788 = r36785 + r36787;
        double r36789 = 2.0;
        double r36790 = r36788 / r36789;
        double r36791 = y;
        double r36792 = cos(r36791);
        double r36793 = r36790 * r36792;
        double r36794 = r36785 - r36787;
        double r36795 = r36794 / r36789;
        double r36796 = sin(r36791);
        double r36797 = r36795 * r36796;
        double r36798 = /* ERROR: no complex support in C */;
        double r36799 = /* ERROR: no complex support in C */;
        return r36799;
}

double f(double x, double y) {
        double r36800 = x;
        double r36801 = exp(r36800);
        double r36802 = -r36800;
        double r36803 = exp(r36802);
        double r36804 = r36801 + r36803;
        double r36805 = 2.0;
        double r36806 = r36804 / r36805;
        double r36807 = y;
        double r36808 = cos(r36807);
        double r36809 = r36806 * r36808;
        return r36809;
}

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. Final simplification0.0

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

Reproduce

herbie shell --seed 2019303 
(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)))))