Average Error: 0.0 → 0.0
Time: 4.7s
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(\sqrt{e^{x}}, \sqrt{e^{x}}, e^{-x}\right)}{2} \cdot \cos y\]
\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(\sqrt{e^{x}}, \sqrt{e^{x}}, e^{-x}\right)}{2} \cdot \cos y
double f(double x, double y) {
        double r29968 = x;
        double r29969 = exp(r29968);
        double r29970 = -r29968;
        double r29971 = exp(r29970);
        double r29972 = r29969 + r29971;
        double r29973 = 2.0;
        double r29974 = r29972 / r29973;
        double r29975 = y;
        double r29976 = cos(r29975);
        double r29977 = r29974 * r29976;
        double r29978 = r29969 - r29971;
        double r29979 = r29978 / r29973;
        double r29980 = sin(r29975);
        double r29981 = r29979 * r29980;
        double r29982 = /* ERROR: no complex support in C */;
        double r29983 = /* ERROR: no complex support in C */;
        return r29983;
}

double f(double x, double y) {
        double r29984 = x;
        double r29985 = exp(r29984);
        double r29986 = sqrt(r29985);
        double r29987 = -r29984;
        double r29988 = exp(r29987);
        double r29989 = fma(r29986, r29986, r29988);
        double r29990 = 2.0;
        double r29991 = r29989 / r29990;
        double r29992 = y;
        double r29993 = cos(r29992);
        double r29994 = r29991 * r29993;
        return r29994;
}

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{e^{x} + e^{-x}}{2} \cdot \cos y}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.0

    \[\leadsto \frac{\color{blue}{\sqrt{e^{x}} \cdot \sqrt{e^{x}}} + e^{-x}}{2} \cdot \cos y\]
  5. Applied fma-def0.0

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, e^{-x}\right)}}{2} \cdot \cos y\]
  6. Final simplification0.0

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

Reproduce

herbie shell --seed 2019347 +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)))))