Average Error: 0.0 → 0.0
Time: 23.5s
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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}
double f(double x, double y) {
        double r34584 = x;
        double r34585 = exp(r34584);
        double r34586 = -r34584;
        double r34587 = exp(r34586);
        double r34588 = r34585 + r34587;
        double r34589 = 2.0;
        double r34590 = r34588 / r34589;
        double r34591 = y;
        double r34592 = cos(r34591);
        double r34593 = r34590 * r34592;
        double r34594 = r34585 - r34587;
        double r34595 = r34594 / r34589;
        double r34596 = sin(r34591);
        double r34597 = r34595 * r34596;
        double r34598 = /* ERROR: no complex support in C */;
        double r34599 = /* ERROR: no complex support in C */;
        return r34599;
}

double f(double x, double y) {
        double r34600 = x;
        double r34601 = exp(r34600);
        double r34602 = -r34600;
        double r34603 = exp(r34602);
        double r34604 = r34601 + r34603;
        double r34605 = 2.0;
        double r34606 = r34604 / r34605;
        double r34607 = sqrt(r34606);
        double r34608 = y;
        double r34609 = cos(r34608);
        double r34610 = r34607 * r34609;
        double r34611 = r34610 * r34607;
        return r34611;
}

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. Simplified0.0

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

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

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y)
  :name "Euler formula real part (p55)"
  (re (complex (* (/ (+ (exp x) (exp (- x))) 2.0) (cos y)) (* (/ (- (exp x) (exp (- x))) 2.0) (sin y)))))