Average Error: 0.0 → 0.0
Time: 4.9s
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 r26608 = x;
        double r26609 = exp(r26608);
        double r26610 = -r26608;
        double r26611 = exp(r26610);
        double r26612 = r26609 + r26611;
        double r26613 = 2.0;
        double r26614 = r26612 / r26613;
        double r26615 = y;
        double r26616 = cos(r26615);
        double r26617 = r26614 * r26616;
        double r26618 = r26609 - r26611;
        double r26619 = r26618 / r26613;
        double r26620 = sin(r26615);
        double r26621 = r26619 * r26620;
        double r26622 = /* ERROR: no complex support in C */;
        double r26623 = /* ERROR: no complex support in C */;
        return r26623;
}

double f(double x, double y) {
        double r26624 = x;
        double r26625 = exp(r26624);
        double r26626 = -r26624;
        double r26627 = exp(r26626);
        double r26628 = r26625 + r26627;
        double r26629 = 2.0;
        double r26630 = r26628 / r26629;
        double r26631 = y;
        double r26632 = cos(r26631);
        double r26633 = r26630 * r26632;
        double r26634 = r26625 - r26627;
        double r26635 = r26634 / r26629;
        double r26636 = sin(r26631);
        double r26637 = r26635 * r26636;
        double r26638 = /* ERROR: no complex support in C */;
        double r26639 = /* ERROR: no complex support in C */;
        return r26639;
}

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