Average Error: 0.0 → 0.0
Time: 8.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(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) \cdot \sqrt{\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))
\left(\cos y \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right) \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}
double f(double x, double y) {
        double r22689 = x;
        double r22690 = exp(r22689);
        double r22691 = -r22689;
        double r22692 = exp(r22691);
        double r22693 = r22690 + r22692;
        double r22694 = 2.0;
        double r22695 = r22693 / r22694;
        double r22696 = y;
        double r22697 = cos(r22696);
        double r22698 = r22695 * r22697;
        double r22699 = r22690 - r22692;
        double r22700 = r22699 / r22694;
        double r22701 = sin(r22696);
        double r22702 = r22700 * r22701;
        double r22703 = /* ERROR: no complex support in C */;
        double r22704 = /* ERROR: no complex support in C */;
        return r22704;
}

double f(double x, double y) {
        double r22705 = y;
        double r22706 = cos(r22705);
        double r22707 = x;
        double r22708 = exp(r22707);
        double r22709 = -r22707;
        double r22710 = exp(r22709);
        double r22711 = r22708 + r22710;
        double r22712 = 2.0;
        double r22713 = r22711 / r22712;
        double r22714 = sqrt(r22713);
        double r22715 = r22706 * r22714;
        double r22716 = r22715 * r22714;
        return r22716;
}

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}{\cos y \cdot \frac{e^{x} + e^{-x}}{2}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.0

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

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

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

Reproduce

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