Average Error: 0.0 → 0.0
Time: 10.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 r26798 = x;
        double r26799 = exp(r26798);
        double r26800 = -r26798;
        double r26801 = exp(r26800);
        double r26802 = r26799 + r26801;
        double r26803 = 2.0;
        double r26804 = r26802 / r26803;
        double r26805 = y;
        double r26806 = cos(r26805);
        double r26807 = r26804 * r26806;
        double r26808 = r26799 - r26801;
        double r26809 = r26808 / r26803;
        double r26810 = sin(r26805);
        double r26811 = r26809 * r26810;
        double r26812 = /* ERROR: no complex support in C */;
        double r26813 = /* ERROR: no complex support in C */;
        return r26813;
}

double f(double x, double y) {
        double r26814 = x;
        double r26815 = exp(r26814);
        double r26816 = -r26814;
        double r26817 = exp(r26816);
        double r26818 = r26815 + r26817;
        double r26819 = 2.0;
        double r26820 = r26818 / r26819;
        double r26821 = y;
        double r26822 = cos(r26821);
        double r26823 = r26820 * r26822;
        double r26824 = r26815 - r26817;
        double r26825 = r26824 / r26819;
        double r26826 = sin(r26821);
        double r26827 = r26825 * r26826;
        double r26828 = /* ERROR: no complex support in C */;
        double r26829 = /* ERROR: no complex support in C */;
        return r26829;
}

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 2020042 +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)))))