Average Error: 0.0 → 0.0
Time: 5.5s
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 r43186 = x;
        double r43187 = exp(r43186);
        double r43188 = -r43186;
        double r43189 = exp(r43188);
        double r43190 = r43187 + r43189;
        double r43191 = 2.0;
        double r43192 = r43190 / r43191;
        double r43193 = y;
        double r43194 = cos(r43193);
        double r43195 = r43192 * r43194;
        double r43196 = r43187 - r43189;
        double r43197 = r43196 / r43191;
        double r43198 = sin(r43193);
        double r43199 = r43197 * r43198;
        double r43200 = /* ERROR: no complex support in C */;
        double r43201 = /* ERROR: no complex support in C */;
        return r43201;
}

double f(double x, double y) {
        double r43202 = x;
        double r43203 = exp(r43202);
        double r43204 = -r43202;
        double r43205 = exp(r43204);
        double r43206 = r43203 + r43205;
        double r43207 = 2.0;
        double r43208 = r43206 / r43207;
        double r43209 = y;
        double r43210 = cos(r43209);
        double r43211 = r43208 * r43210;
        return r43211;
}

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 2019344 
(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)))))