Average Error: 0.0 → 0.0
Time: 3.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))\]
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r16534 = x;
        double r16535 = exp(r16534);
        double r16536 = -r16534;
        double r16537 = exp(r16536);
        double r16538 = r16535 + r16537;
        double r16539 = 2.0;
        double r16540 = r16538 / r16539;
        double r16541 = y;
        double r16542 = cos(r16541);
        double r16543 = r16540 * r16542;
        double r16544 = r16535 - r16537;
        double r16545 = r16544 / r16539;
        double r16546 = sin(r16541);
        double r16547 = r16545 * r16546;
        double r16548 = /* ERROR: no complex support in C */;
        double r16549 = /* ERROR: no complex support in C */;
        return r16549;
}

double f(double x, double y) {
        double r16550 = x;
        double r16551 = exp(r16550);
        double r16552 = -r16550;
        double r16553 = exp(r16552);
        double r16554 = r16551 + r16553;
        double r16555 = 2.0;
        double r16556 = r16554 / r16555;
        double r16557 = y;
        double r16558 = cos(r16557);
        double r16559 = r16556 * r16558;
        double r16560 = r16551 - r16553;
        double r16561 = r16560 / r16555;
        double r16562 = sin(r16557);
        double r16563 = r16561 * r16562;
        double r16564 = /* ERROR: no complex support in C */;
        double r16565 = /* ERROR: no complex support in C */;
        return r16565;
}

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. Final simplification0.0

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

Reproduce

herbie shell --seed 2020025 +o rules:numerics
(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)))))