Average Error: 0.0 → 0.0
Time: 4.8s
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 r34947 = x;
        double r34948 = exp(r34947);
        double r34949 = -r34947;
        double r34950 = exp(r34949);
        double r34951 = r34948 + r34950;
        double r34952 = 2.0;
        double r34953 = r34951 / r34952;
        double r34954 = y;
        double r34955 = cos(r34954);
        double r34956 = r34953 * r34955;
        double r34957 = r34948 - r34950;
        double r34958 = r34957 / r34952;
        double r34959 = sin(r34954);
        double r34960 = r34958 * r34959;
        double r34961 = /* ERROR: no complex support in C */;
        double r34962 = /* ERROR: no complex support in C */;
        return r34962;
}

double f(double x, double y) {
        double r34963 = x;
        double r34964 = exp(r34963);
        double r34965 = -r34963;
        double r34966 = exp(r34965);
        double r34967 = r34964 + r34966;
        double r34968 = 2.0;
        double r34969 = r34967 / r34968;
        double r34970 = y;
        double r34971 = cos(r34970);
        double r34972 = r34969 * r34971;
        return r34972;
}

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{e^{x} + e^{-x}}{2} \cdot \cos y}\]
  3. Final simplification0.0

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

Reproduce

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