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 r32150 = x;
        double r32151 = exp(r32150);
        double r32152 = -r32150;
        double r32153 = exp(r32152);
        double r32154 = r32151 + r32153;
        double r32155 = 2.0;
        double r32156 = r32154 / r32155;
        double r32157 = y;
        double r32158 = cos(r32157);
        double r32159 = r32156 * r32158;
        double r32160 = r32151 - r32153;
        double r32161 = r32160 / r32155;
        double r32162 = sin(r32157);
        double r32163 = r32161 * r32162;
        double r32164 = /* ERROR: no complex support in C */;
        double r32165 = /* ERROR: no complex support in C */;
        return r32165;
}

double f(double x, double y) {
        double r32166 = x;
        double r32167 = exp(r32166);
        double r32168 = -r32166;
        double r32169 = exp(r32168);
        double r32170 = r32167 + r32169;
        double r32171 = 2.0;
        double r32172 = r32170 / r32171;
        double r32173 = y;
        double r32174 = cos(r32173);
        double r32175 = r32172 * r32174;
        double r32176 = r32167 - r32169;
        double r32177 = r32176 / r32171;
        double r32178 = sin(r32173);
        double r32179 = r32177 * r32178;
        double r32180 = /* ERROR: no complex support in C */;
        double r32181 = /* ERROR: no complex support in C */;
        return r32181;
}

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