Average Error: 0.0 → 0.0
Time: 4.1s
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 r22835 = x;
        double r22836 = exp(r22835);
        double r22837 = -r22835;
        double r22838 = exp(r22837);
        double r22839 = r22836 + r22838;
        double r22840 = 2.0;
        double r22841 = r22839 / r22840;
        double r22842 = y;
        double r22843 = cos(r22842);
        double r22844 = r22841 * r22843;
        double r22845 = r22836 - r22838;
        double r22846 = r22845 / r22840;
        double r22847 = sin(r22842);
        double r22848 = r22846 * r22847;
        double r22849 = /* ERROR: no complex support in C */;
        double r22850 = /* ERROR: no complex support in C */;
        return r22850;
}

double f(double x, double y) {
        double r22851 = x;
        double r22852 = exp(r22851);
        double r22853 = -r22851;
        double r22854 = exp(r22853);
        double r22855 = r22852 + r22854;
        double r22856 = 2.0;
        double r22857 = r22855 / r22856;
        double r22858 = y;
        double r22859 = cos(r22858);
        double r22860 = r22857 * r22859;
        double r22861 = r22852 - r22854;
        double r22862 = r22861 / r22856;
        double r22863 = sin(r22858);
        double r22864 = r22862 * r22863;
        double r22865 = /* ERROR: no complex support in C */;
        double r22866 = /* ERROR: no complex support in C */;
        return r22866;
}

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