Average Error: 0.0 → 0.0
Time: 6.2s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\sqrt{1} \cdot \left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y\right)\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\sqrt{1} \cdot \left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y\right)
double f(double x, double y) {
        double r30066 = x;
        double r30067 = exp(r30066);
        double r30068 = -r30066;
        double r30069 = exp(r30068);
        double r30070 = r30067 + r30069;
        double r30071 = 2.0;
        double r30072 = r30070 / r30071;
        double r30073 = y;
        double r30074 = cos(r30073);
        double r30075 = r30072 * r30074;
        double r30076 = r30067 - r30069;
        double r30077 = r30076 / r30071;
        double r30078 = sin(r30073);
        double r30079 = r30077 * r30078;
        double r30080 = /* ERROR: no complex support in C */;
        double r30081 = /* ERROR: no complex support in C */;
        return r30081;
}

double f(double x, double y) {
        double r30082 = 1.0;
        double r30083 = sqrt(r30082);
        double r30084 = x;
        double r30085 = exp(r30084);
        double r30086 = -r30084;
        double r30087 = exp(r30086);
        double r30088 = r30085 + r30087;
        double r30089 = 2.0;
        double r30090 = r30088 / r30089;
        double r30091 = y;
        double r30092 = cos(r30091);
        double r30093 = r30090 * r30092;
        double r30094 = r30083 * r30093;
        return r30094;
}

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 \color{blue}{\left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\right)} \cdot \cos y\]
  5. Applied associate-*l*0.0

    \[\leadsto \color{blue}{\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.0

    \[\leadsto \sqrt{\color{blue}{1 \cdot \frac{e^{x} + e^{-x}}{2}}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)\]
  8. Applied sqrt-prod0.0

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

    \[\leadsto \color{blue}{\sqrt{1} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)\right)}\]
  10. Simplified0.0

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

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

Reproduce

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