Average Error: 43.4 → 0.8
Time: 35.7s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))
double f(double x, double y) {
        double r55367 = x;
        double r55368 = exp(r55367);
        double r55369 = -r55367;
        double r55370 = exp(r55369);
        double r55371 = r55368 + r55370;
        double r55372 = 2.0;
        double r55373 = r55371 / r55372;
        double r55374 = y;
        double r55375 = cos(r55374);
        double r55376 = r55373 * r55375;
        double r55377 = r55368 - r55370;
        double r55378 = r55377 / r55372;
        double r55379 = sin(r55374);
        double r55380 = r55378 * r55379;
        double r55381 = /* ERROR: no complex support in C */;
        double r55382 = /* ERROR: no complex support in C */;
        return r55382;
}

double f(double x, double y) {
        double r55383 = x;
        double r55384 = exp(r55383);
        double r55385 = -r55383;
        double r55386 = exp(r55385);
        double r55387 = r55384 + r55386;
        double r55388 = 2.0;
        double r55389 = r55387 / r55388;
        double r55390 = y;
        double r55391 = cos(r55390);
        double r55392 = r55389 * r55391;
        double r55393 = 0.3333333333333333;
        double r55394 = 3.0;
        double r55395 = pow(r55383, r55394);
        double r55396 = 0.016666666666666666;
        double r55397 = 5.0;
        double r55398 = pow(r55383, r55397);
        double r55399 = 2.0;
        double r55400 = r55399 * r55383;
        double r55401 = fma(r55396, r55398, r55400);
        double r55402 = fma(r55393, r55395, r55401);
        double r55403 = r55402 / r55388;
        double r55404 = sin(r55390);
        double r55405 = r55403 * r55404;
        double r55406 = /* ERROR: no complex support in C */;
        double r55407 = /* ERROR: no complex support in C */;
        return r55407;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.4

    \[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
  2. Taylor expanded around 0 0.8

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2} \cdot \sin y i\right))\]
  3. Simplified0.8

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\color{blue}{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}}{2} \cdot \sin y i\right))\]
  4. Final simplification0.8

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}{2} \cdot \sin y i\right))\]

Reproduce

herbie shell --seed 2019304 +o rules:numerics
(FPCore (x y)
  :name "Euler formula imaginary part (p55)"
  :precision binary64
  (im (complex (* (/ (+ (exp x) (exp (- x))) 2) (cos y)) (* (/ (- (exp x) (exp (- x))) 2) (sin y)))))