Average Error: 0.0 → 0.2
Time: 22.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(\sqrt{\frac{\sqrt[3]{{\left(e^{x} + e^{-x}\right)}^{3}}}{2}} \cdot \left(\cos y \cdot \sqrt{\frac{e^{-x} + e^{x}}{2}}\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{\sqrt[3]{{\left(e^{x} + e^{-x}\right)}^{3}}}{2}} \cdot \left(\cos y \cdot \sqrt{\frac{e^{-x} + e^{x}}{2}}\right) + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r43884 = x;
        double r43885 = exp(r43884);
        double r43886 = -r43884;
        double r43887 = exp(r43886);
        double r43888 = r43885 + r43887;
        double r43889 = 2.0;
        double r43890 = r43888 / r43889;
        double r43891 = y;
        double r43892 = cos(r43891);
        double r43893 = r43890 * r43892;
        double r43894 = r43885 - r43887;
        double r43895 = r43894 / r43889;
        double r43896 = sin(r43891);
        double r43897 = r43895 * r43896;
        double r43898 = /* ERROR: no complex support in C */;
        double r43899 = /* ERROR: no complex support in C */;
        return r43899;
}

double f(double x, double y) {
        double r43900 = x;
        double r43901 = exp(r43900);
        double r43902 = -r43900;
        double r43903 = exp(r43902);
        double r43904 = r43901 + r43903;
        double r43905 = 3.0;
        double r43906 = pow(r43904, r43905);
        double r43907 = cbrt(r43906);
        double r43908 = 2.0;
        double r43909 = r43907 / r43908;
        double r43910 = sqrt(r43909);
        double r43911 = y;
        double r43912 = cos(r43911);
        double r43913 = r43903 + r43901;
        double r43914 = r43913 / r43908;
        double r43915 = sqrt(r43914);
        double r43916 = r43912 * r43915;
        double r43917 = r43910 * r43916;
        double r43918 = r43901 - r43903;
        double r43919 = r43918 / r43908;
        double r43920 = sin(r43911);
        double r43921 = r43919 * r43920;
        double r43922 = /* ERROR: no complex support in C */;
        double r43923 = /* ERROR: no complex support in C */;
        return r43923;
}

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-cbrt-cube0.2

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

    \[\leadsto \Re(\left(\frac{\sqrt[3]{\color{blue}{{\left(e^{x} + e^{-x}\right)}^{3}}}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt0.2

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

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

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

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

Reproduce

herbie shell --seed 2019325 
(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)))))