Average Error: 0.0 → 0.0
Time: 18.8s
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 r28890 = x;
        double r28891 = exp(r28890);
        double r28892 = -r28890;
        double r28893 = exp(r28892);
        double r28894 = r28891 + r28893;
        double r28895 = 2.0;
        double r28896 = r28894 / r28895;
        double r28897 = y;
        double r28898 = cos(r28897);
        double r28899 = r28896 * r28898;
        double r28900 = r28891 - r28893;
        double r28901 = r28900 / r28895;
        double r28902 = sin(r28897);
        double r28903 = r28901 * r28902;
        double r28904 = /* ERROR: no complex support in C */;
        double r28905 = /* ERROR: no complex support in C */;
        return r28905;
}

double f(double x, double y) {
        double r28906 = x;
        double r28907 = exp(r28906);
        double r28908 = -r28906;
        double r28909 = exp(r28908);
        double r28910 = r28907 + r28909;
        double r28911 = 2.0;
        double r28912 = r28910 / r28911;
        double r28913 = y;
        double r28914 = cos(r28913);
        double r28915 = r28912 * r28914;
        double r28916 = r28907 - r28909;
        double r28917 = r28916 / r28911;
        double r28918 = sin(r28913);
        double r28919 = r28917 * r28918;
        double r28920 = /* ERROR: no complex support in C */;
        double r28921 = /* ERROR: no complex support in C */;
        return r28921;
}

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