Average Error: 0.0 → 0.0
Time: 28.3s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\frac{\mathsf{fma}\left(\left(\cos y\right), \left(e^{x}\right), \left(\frac{\cos y}{e^{x}}\right)\right)}{2}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\frac{\mathsf{fma}\left(\left(\cos y\right), \left(e^{x}\right), \left(\frac{\cos y}{e^{x}}\right)\right)}{2}
double f(double x, double y) {
        double r1729873 = x;
        double r1729874 = exp(r1729873);
        double r1729875 = -r1729873;
        double r1729876 = exp(r1729875);
        double r1729877 = r1729874 + r1729876;
        double r1729878 = 2.0;
        double r1729879 = r1729877 / r1729878;
        double r1729880 = y;
        double r1729881 = cos(r1729880);
        double r1729882 = r1729879 * r1729881;
        double r1729883 = r1729874 - r1729876;
        double r1729884 = r1729883 / r1729878;
        double r1729885 = sin(r1729880);
        double r1729886 = r1729884 * r1729885;
        double r1729887 = /* ERROR: no complex support in C */;
        double r1729888 = /* ERROR: no complex support in C */;
        return r1729888;
}

double f(double x, double y) {
        double r1729889 = y;
        double r1729890 = cos(r1729889);
        double r1729891 = x;
        double r1729892 = exp(r1729891);
        double r1729893 = r1729890 / r1729892;
        double r1729894 = fma(r1729890, r1729892, r1729893);
        double r1729895 = 2.0;
        double r1729896 = r1729894 / r1729895;
        return r1729896;
}

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}{\frac{\mathsf{fma}\left(\left(\cos y\right), \left(e^{x}\right), \left(\frac{\cos y}{e^{x}}\right)\right)}{2}}\]
  3. Final simplification0.0

    \[\leadsto \frac{\mathsf{fma}\left(\left(\cos y\right), \left(e^{x}\right), \left(\frac{\cos y}{e^{x}}\right)\right)}{2}\]

Reproduce

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