Average Error: 0.0 → 0.0
Time: 9.7s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\cos y \cdot \frac{e^{x} + e^{-x}}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\cos y \cdot \frac{e^{x} + e^{-x}}{2}
double f(double x, double y) {
        double r22942 = x;
        double r22943 = exp(r22942);
        double r22944 = -r22942;
        double r22945 = exp(r22944);
        double r22946 = r22943 + r22945;
        double r22947 = 2.0;
        double r22948 = r22946 / r22947;
        double r22949 = y;
        double r22950 = cos(r22949);
        double r22951 = r22948 * r22950;
        double r22952 = r22943 - r22945;
        double r22953 = r22952 / r22947;
        double r22954 = sin(r22949);
        double r22955 = r22953 * r22954;
        double r22956 = /* ERROR: no complex support in C */;
        double r22957 = /* ERROR: no complex support in C */;
        return r22957;
}

double f(double x, double y) {
        double r22958 = y;
        double r22959 = cos(r22958);
        double r22960 = x;
        double r22961 = exp(r22960);
        double r22962 = -r22960;
        double r22963 = exp(r22962);
        double r22964 = r22961 + r22963;
        double r22965 = 2.0;
        double r22966 = r22964 / r22965;
        double r22967 = r22959 * r22966;
        return r22967;
}

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

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

Reproduce

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