Average Error: 43.1 → 0.8
Time: 36.5s
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 r51409 = x;
        double r51410 = exp(r51409);
        double r51411 = -r51409;
        double r51412 = exp(r51411);
        double r51413 = r51410 + r51412;
        double r51414 = 2.0;
        double r51415 = r51413 / r51414;
        double r51416 = y;
        double r51417 = cos(r51416);
        double r51418 = r51415 * r51417;
        double r51419 = r51410 - r51412;
        double r51420 = r51419 / r51414;
        double r51421 = sin(r51416);
        double r51422 = r51420 * r51421;
        double r51423 = /* ERROR: no complex support in C */;
        double r51424 = /* ERROR: no complex support in C */;
        return r51424;
}

double f(double x, double y) {
        double r51425 = x;
        double r51426 = exp(r51425);
        double r51427 = -r51425;
        double r51428 = exp(r51427);
        double r51429 = r51426 + r51428;
        double r51430 = 2.0;
        double r51431 = r51429 / r51430;
        double r51432 = y;
        double r51433 = cos(r51432);
        double r51434 = r51431 * r51433;
        double r51435 = 0.3333333333333333;
        double r51436 = 3.0;
        double r51437 = pow(r51425, r51436);
        double r51438 = 0.016666666666666666;
        double r51439 = 5.0;
        double r51440 = pow(r51425, r51439);
        double r51441 = 2.0;
        double r51442 = r51441 * r51425;
        double r51443 = fma(r51438, r51440, r51442);
        double r51444 = fma(r51435, r51437, r51443);
        double r51445 = r51444 / r51430;
        double r51446 = sin(r51432);
        double r51447 = r51445 * r51446;
        double r51448 = /* ERROR: no complex support in C */;
        double r51449 = /* ERROR: no complex support in C */;
        return r51449;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.1

    \[\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 2019303 +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)))))