Average Error: 0.0 → 0.0
Time: 5.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))\]
\[\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)
double f(double x, double y) {
        double r36592 = x;
        double r36593 = exp(r36592);
        double r36594 = -r36592;
        double r36595 = exp(r36594);
        double r36596 = r36593 + r36595;
        double r36597 = 2.0;
        double r36598 = r36596 / r36597;
        double r36599 = y;
        double r36600 = cos(r36599);
        double r36601 = r36598 * r36600;
        double r36602 = r36593 - r36595;
        double r36603 = r36602 / r36597;
        double r36604 = sin(r36599);
        double r36605 = r36603 * r36604;
        double r36606 = /* ERROR: no complex support in C */;
        double r36607 = /* ERROR: no complex support in C */;
        return r36607;
}

double f(double x, double y) {
        double r36608 = x;
        double r36609 = exp(r36608);
        double r36610 = -r36608;
        double r36611 = exp(r36610);
        double r36612 = r36609 + r36611;
        double r36613 = 2.0;
        double r36614 = r36612 / r36613;
        double r36615 = sqrt(r36614);
        double r36616 = y;
        double r36617 = cos(r36616);
        double r36618 = r36615 * r36617;
        double r36619 = r36615 * r36618;
        return r36619;
}

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 \sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)\]

Reproduce

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