Average Error: 0.0 → 0.0
Time: 41.0s
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 r1365866 = x;
        double r1365867 = exp(r1365866);
        double r1365868 = -r1365866;
        double r1365869 = exp(r1365868);
        double r1365870 = r1365867 + r1365869;
        double r1365871 = 2.0;
        double r1365872 = r1365870 / r1365871;
        double r1365873 = y;
        double r1365874 = cos(r1365873);
        double r1365875 = r1365872 * r1365874;
        double r1365876 = r1365867 - r1365869;
        double r1365877 = r1365876 / r1365871;
        double r1365878 = sin(r1365873);
        double r1365879 = r1365877 * r1365878;
        double r1365880 = /* ERROR: no complex support in C */;
        double r1365881 = /* ERROR: no complex support in C */;
        return r1365881;
}

double f(double x, double y) {
        double r1365882 = y;
        double r1365883 = cos(r1365882);
        double r1365884 = x;
        double r1365885 = exp(r1365884);
        double r1365886 = r1365883 / r1365885;
        double r1365887 = fma(r1365883, r1365885, r1365886);
        double r1365888 = 2.0;
        double r1365889 = r1365887 / r1365888;
        return r1365889;
}

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 2019107 +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)))))