Average Error: 0.0 → 0.0
Time: 17.7s
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(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \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(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r38125 = x;
        double r38126 = exp(r38125);
        double r38127 = -r38125;
        double r38128 = exp(r38127);
        double r38129 = r38126 + r38128;
        double r38130 = 2.0;
        double r38131 = r38129 / r38130;
        double r38132 = y;
        double r38133 = cos(r38132);
        double r38134 = r38131 * r38133;
        double r38135 = r38126 - r38128;
        double r38136 = r38135 / r38130;
        double r38137 = sin(r38132);
        double r38138 = r38136 * r38137;
        double r38139 = /* ERROR: no complex support in C */;
        double r38140 = /* ERROR: no complex support in C */;
        return r38140;
}

double f(double x, double y) {
        double r38141 = x;
        double r38142 = exp(r38141);
        double r38143 = -r38141;
        double r38144 = exp(r38143);
        double r38145 = r38142 + r38144;
        double r38146 = 2.0;
        double r38147 = r38145 / r38146;
        double r38148 = y;
        double r38149 = cos(r38148);
        double r38150 = r38147 * r38149;
        double r38151 = r38142 - r38144;
        double r38152 = r38151 / r38146;
        double r38153 = sin(r38148);
        double r38154 = r38152 * r38153;
        double r38155 = /* ERROR: no complex support in C */;
        double r38156 = /* ERROR: no complex support in C */;
        return r38156;
}

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

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

Reproduce

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