Average Error: 0.0 → 0.0
Time: 46.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))\]
\[\left(\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y\right) \cdot \frac{1}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\left(\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y\right) \cdot \frac{1}{2}
double f(double x, double y) {
        double r983665 = x;
        double r983666 = exp(r983665);
        double r983667 = -r983665;
        double r983668 = exp(r983667);
        double r983669 = r983666 + r983668;
        double r983670 = 2.0;
        double r983671 = r983669 / r983670;
        double r983672 = y;
        double r983673 = cos(r983672);
        double r983674 = r983671 * r983673;
        double r983675 = r983666 - r983668;
        double r983676 = r983675 / r983670;
        double r983677 = sin(r983672);
        double r983678 = r983676 * r983677;
        double r983679 = /* ERROR: no complex support in C */;
        double r983680 = /* ERROR: no complex support in C */;
        return r983680;
}

double f(double x, double y) {
        double r983681 = y;
        double r983682 = cos(r983681);
        double r983683 = x;
        double r983684 = exp(r983683);
        double r983685 = r983682 / r983684;
        double r983686 = r983684 * r983682;
        double r983687 = r983685 + r983686;
        double r983688 = 0.5;
        double r983689 = r983687 * r983688;
        return r983689;
}

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{1}{2} \cdot \left(\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y\right)}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.0

    \[\leadsto \frac{1}{2} \cdot \left(\frac{\cos y}{e^{x}} + e^{x} \cdot \color{blue}{\left(1 \cdot \cos y\right)}\right)\]
  5. Applied associate-*r*0.0

    \[\leadsto \frac{1}{2} \cdot \left(\frac{\cos y}{e^{x}} + \color{blue}{\left(e^{x} \cdot 1\right) \cdot \cos y}\right)\]
  6. Simplified0.0

    \[\leadsto \frac{1}{2} \cdot \left(\frac{\cos y}{e^{x}} + \color{blue}{e^{x}} \cdot \cos y\right)\]
  7. Final simplification0.0

    \[\leadsto \left(\frac{\cos y}{e^{x}} + e^{x} \cdot \cos y\right) \cdot \frac{1}{2}\]

Reproduce

herbie shell --seed 2019151 
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))