Average Error: 0.0 → 0.0
Time: 9.3s
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 r305878 = x;
        double r305879 = exp(r305878);
        double r305880 = -r305878;
        double r305881 = exp(r305880);
        double r305882 = r305879 + r305881;
        double r305883 = 2.0;
        double r305884 = r305882 / r305883;
        double r305885 = y;
        double r305886 = cos(r305885);
        double r305887 = r305884 * r305886;
        double r305888 = r305879 - r305881;
        double r305889 = r305888 / r305883;
        double r305890 = sin(r305885);
        double r305891 = r305889 * r305890;
        double r305892 = /* ERROR: no complex support in C */;
        double r305893 = /* ERROR: no complex support in C */;
        return r305893;
}

double f(double x, double y) {
        double r305894 = y;
        double r305895 = cos(r305894);
        double r305896 = x;
        double r305897 = exp(r305896);
        double r305898 = r305895 / r305897;
        double r305899 = fma(r305895, r305897, r305898);
        double r305900 = 2.0;
        double r305901 = r305899 / r305900;
        return r305901;
}

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