Average Error: 0.0 → 0.0
Time: 8.7s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\cos y \cdot \frac{e^{x} + e^{-x}}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\cos y \cdot \frac{e^{x} + e^{-x}}{2}
double f(double x, double y) {
        double r42597 = x;
        double r42598 = exp(r42597);
        double r42599 = -r42597;
        double r42600 = exp(r42599);
        double r42601 = r42598 + r42600;
        double r42602 = 2.0;
        double r42603 = r42601 / r42602;
        double r42604 = y;
        double r42605 = cos(r42604);
        double r42606 = r42603 * r42605;
        double r42607 = r42598 - r42600;
        double r42608 = r42607 / r42602;
        double r42609 = sin(r42604);
        double r42610 = r42608 * r42609;
        double r42611 = /* ERROR: no complex support in C */;
        double r42612 = /* ERROR: no complex support in C */;
        return r42612;
}

double f(double x, double y) {
        double r42613 = y;
        double r42614 = cos(r42613);
        double r42615 = x;
        double r42616 = exp(r42615);
        double r42617 = -r42615;
        double r42618 = exp(r42617);
        double r42619 = r42616 + r42618;
        double r42620 = 2.0;
        double r42621 = r42619 / r42620;
        double r42622 = r42614 * r42621;
        return r42622;
}

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. Using strategy rm
  4. Applied add-sqr-sqrt0.0

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

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

    \[\leadsto \cos y \cdot \frac{e^{x} + e^{-x}}{2}\]

Reproduce

herbie shell --seed 197574269 
(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)))))