Average Error: 0.0 → 0.0
Time: 28.4s
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 r981130 = x;
        double r981131 = exp(r981130);
        double r981132 = -r981130;
        double r981133 = exp(r981132);
        double r981134 = r981131 + r981133;
        double r981135 = 2.0;
        double r981136 = r981134 / r981135;
        double r981137 = y;
        double r981138 = cos(r981137);
        double r981139 = r981136 * r981138;
        double r981140 = r981131 - r981133;
        double r981141 = r981140 / r981135;
        double r981142 = sin(r981137);
        double r981143 = r981141 * r981142;
        double r981144 = /* ERROR: no complex support in C */;
        double r981145 = /* ERROR: no complex support in C */;
        return r981145;
}

double f(double x, double y) {
        double r981146 = y;
        double r981147 = cos(r981146);
        double r981148 = x;
        double r981149 = exp(r981148);
        double r981150 = r981147 / r981149;
        double r981151 = fma(r981147, r981149, r981150);
        double r981152 = 2.0;
        double r981153 = r981151 / r981152;
        return r981153;
}

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