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))\]
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r23176 = x;
        double r23177 = exp(r23176);
        double r23178 = -r23176;
        double r23179 = exp(r23178);
        double r23180 = r23177 + r23179;
        double r23181 = 2.0;
        double r23182 = r23180 / r23181;
        double r23183 = y;
        double r23184 = cos(r23183);
        double r23185 = r23182 * r23184;
        double r23186 = r23177 - r23179;
        double r23187 = r23186 / r23181;
        double r23188 = sin(r23183);
        double r23189 = r23187 * r23188;
        double r23190 = /* ERROR: no complex support in C */;
        double r23191 = /* ERROR: no complex support in C */;
        return r23191;
}

double f(double x, double y) {
        double r23192 = x;
        double r23193 = exp(r23192);
        double r23194 = -r23192;
        double r23195 = exp(r23194);
        double r23196 = r23193 + r23195;
        double r23197 = 2.0;
        double r23198 = r23196 / r23197;
        double r23199 = y;
        double r23200 = cos(r23199);
        double r23201 = r23198 * r23200;
        double r23202 = r23193 - r23195;
        double r23203 = r23202 / r23197;
        double r23204 = sin(r23199);
        double r23205 = r23203 * r23204;
        double r23206 = /* ERROR: no complex support in C */;
        double r23207 = /* ERROR: no complex support in C */;
        return r23207;
}

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. Final simplification0.0

    \[\leadsto \Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

Reproduce

herbie shell --seed 2020039 +o rules:numerics
(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)))))