Average Error: 0.0 → 0.0
Time: 20.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 r42341 = x;
        double r42342 = exp(r42341);
        double r42343 = -r42341;
        double r42344 = exp(r42343);
        double r42345 = r42342 + r42344;
        double r42346 = 2.0;
        double r42347 = r42345 / r42346;
        double r42348 = y;
        double r42349 = cos(r42348);
        double r42350 = r42347 * r42349;
        double r42351 = r42342 - r42344;
        double r42352 = r42351 / r42346;
        double r42353 = sin(r42348);
        double r42354 = r42352 * r42353;
        double r42355 = /* ERROR: no complex support in C */;
        double r42356 = /* ERROR: no complex support in C */;
        return r42356;
}

double f(double x, double y) {
        double r42357 = x;
        double r42358 = exp(r42357);
        double r42359 = -r42357;
        double r42360 = exp(r42359);
        double r42361 = r42358 + r42360;
        double r42362 = 2.0;
        double r42363 = r42361 / r42362;
        double r42364 = y;
        double r42365 = cos(r42364);
        double r42366 = r42363 * r42365;
        double r42367 = r42358 - r42360;
        double r42368 = r42367 / r42362;
        double r42369 = sin(r42364);
        double r42370 = r42368 * r42369;
        double r42371 = /* ERROR: no complex support in C */;
        double r42372 = /* ERROR: no complex support in C */;
        return r42372;
}

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