Average Error: 0.0 → 0.0
Time: 15.5s
Precision: 64
\[\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\left(\cos y \cdot \frac{\sqrt{e^{x} + e^{-x}}}{\sqrt{2}}\right) \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}\]
\Re(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\left(\cos y \cdot \frac{\sqrt{e^{x} + e^{-x}}}{\sqrt{2}}\right) \cdot \sqrt{\frac{e^{x} + e^{-x}}{2}}
double f(double x, double y) {
        double r23109 = x;
        double r23110 = exp(r23109);
        double r23111 = -r23109;
        double r23112 = exp(r23111);
        double r23113 = r23110 + r23112;
        double r23114 = 2.0;
        double r23115 = r23113 / r23114;
        double r23116 = y;
        double r23117 = cos(r23116);
        double r23118 = r23115 * r23117;
        double r23119 = r23110 - r23112;
        double r23120 = r23119 / r23114;
        double r23121 = sin(r23116);
        double r23122 = r23120 * r23121;
        double r23123 = /* ERROR: no complex support in C */;
        double r23124 = /* ERROR: no complex support in C */;
        return r23124;
}

double f(double x, double y) {
        double r23125 = y;
        double r23126 = cos(r23125);
        double r23127 = x;
        double r23128 = exp(r23127);
        double r23129 = -r23127;
        double r23130 = exp(r23129);
        double r23131 = r23128 + r23130;
        double r23132 = sqrt(r23131);
        double r23133 = 2.0;
        double r23134 = sqrt(r23133);
        double r23135 = r23132 / r23134;
        double r23136 = r23126 * r23135;
        double r23137 = r23131 / r23133;
        double r23138 = sqrt(r23137);
        double r23139 = r23136 * r23138;
        return r23139;
}

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

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

    \[\leadsto \cos y \cdot \frac{\color{blue}{\sqrt{e^{x} + e^{-x}} \cdot \sqrt{e^{x} + e^{-x}}}}{\sqrt{2} \cdot \sqrt{2}}\]
  6. Applied times-frac0.0

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

    \[\leadsto \color{blue}{\left(\cos y \cdot \frac{\sqrt{e^{x} + e^{-x}}}{\sqrt{2}}\right) \cdot \frac{\sqrt{e^{x} + e^{-x}}}{\sqrt{2}}}\]
  8. Using strategy rm
  9. Applied sqrt-undiv0.0

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

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

Reproduce

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