Average Error: 0.0 → 0.0
Time: 6.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))\]
\[\Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \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(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r44904 = x;
        double r44905 = exp(r44904);
        double r44906 = -r44904;
        double r44907 = exp(r44906);
        double r44908 = r44905 + r44907;
        double r44909 = 2.0;
        double r44910 = r44908 / r44909;
        double r44911 = y;
        double r44912 = cos(r44911);
        double r44913 = r44910 * r44912;
        double r44914 = r44905 - r44907;
        double r44915 = r44914 / r44909;
        double r44916 = sin(r44911);
        double r44917 = r44915 * r44916;
        double r44918 = /* ERROR: no complex support in C */;
        double r44919 = /* ERROR: no complex support in C */;
        return r44919;
}

double f(double x, double y) {
        double r44920 = x;
        double r44921 = exp(r44920);
        double r44922 = -r44920;
        double r44923 = exp(r44922);
        double r44924 = r44921 + r44923;
        double r44925 = 2.0;
        double r44926 = r44924 / r44925;
        double r44927 = sqrt(r44926);
        double r44928 = y;
        double r44929 = cos(r44928);
        double r44930 = r44927 * r44929;
        double r44931 = r44927 * r44930;
        double r44932 = r44921 - r44923;
        double r44933 = r44932 / r44925;
        double r44934 = sin(r44928);
        double r44935 = r44933 * r44934;
        double r44936 = /* ERROR: no complex support in C */;
        double r44937 = /* ERROR: no complex support in C */;
        return r44937;
}

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. Using strategy rm
  3. Applied add-sqr-sqrt0.0

    \[\leadsto \Re(\left(\color{blue}{\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right)} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  4. Applied associate-*l*0.0

    \[\leadsto \Re(\left(\color{blue}{\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)} + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  5. Final simplification0.0

    \[\leadsto \Re(\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

Reproduce

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