Average Error: 0.0 → 0.0
Time: 3.6s
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{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\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{\frac{e^{x} + e^{-x}}{2}} \cdot \left(\sqrt{\frac{e^{x} + e^{-x}}{2}} \cdot \cos y\right)
double f(double x, double y) {
        double r38133 = x;
        double r38134 = exp(r38133);
        double r38135 = -r38133;
        double r38136 = exp(r38135);
        double r38137 = r38134 + r38136;
        double r38138 = 2.0;
        double r38139 = r38137 / r38138;
        double r38140 = y;
        double r38141 = cos(r38140);
        double r38142 = r38139 * r38141;
        double r38143 = r38134 - r38136;
        double r38144 = r38143 / r38138;
        double r38145 = sin(r38140);
        double r38146 = r38144 * r38145;
        double r38147 = /* ERROR: no complex support in C */;
        double r38148 = /* ERROR: no complex support in C */;
        return r38148;
}

double f(double x, double y) {
        double r38149 = x;
        double r38150 = exp(r38149);
        double r38151 = -r38149;
        double r38152 = exp(r38151);
        double r38153 = r38150 + r38152;
        double r38154 = 2.0;
        double r38155 = r38153 / r38154;
        double r38156 = sqrt(r38155);
        double r38157 = y;
        double r38158 = cos(r38157);
        double r38159 = r38156 * r38158;
        double r38160 = r38156 * r38159;
        return r38160;
}

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. Final simplification0.0

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

Reproduce

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