Average Error: 0.0 → 0.0
Time: 17.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))\]
\[\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 r38120 = x;
        double r38121 = exp(r38120);
        double r38122 = -r38120;
        double r38123 = exp(r38122);
        double r38124 = r38121 + r38123;
        double r38125 = 2.0;
        double r38126 = r38124 / r38125;
        double r38127 = y;
        double r38128 = cos(r38127);
        double r38129 = r38126 * r38128;
        double r38130 = r38121 - r38123;
        double r38131 = r38130 / r38125;
        double r38132 = sin(r38127);
        double r38133 = r38131 * r38132;
        double r38134 = /* ERROR: no complex support in C */;
        double r38135 = /* ERROR: no complex support in C */;
        return r38135;
}

double f(double x, double y) {
        double r38136 = x;
        double r38137 = exp(r38136);
        double r38138 = -r38136;
        double r38139 = exp(r38138);
        double r38140 = r38137 + r38139;
        double r38141 = 2.0;
        double r38142 = r38140 / r38141;
        double r38143 = y;
        double r38144 = cos(r38143);
        double r38145 = r38142 * r38144;
        double r38146 = r38137 - r38139;
        double r38147 = r38146 / r38141;
        double r38148 = sin(r38143);
        double r38149 = r38147 * r38148;
        double r38150 = /* ERROR: no complex support in C */;
        double r38151 = /* ERROR: no complex support in C */;
        return r38151;
}

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)))))