Average Error: 44.2 → 0.8
Time: 31.0s
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 + \mathsf{fma}\left(\sin y, 0.1666666666666666574148081281236954964697 \cdot {x}^{3}, \sin y \cdot \mathsf{fma}\left(x, 1, 0.008333333333333333217685101601546193705872 \cdot {x}^{5}\right)\right) 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 + \mathsf{fma}\left(\sin y, 0.1666666666666666574148081281236954964697 \cdot {x}^{3}, \sin y \cdot \mathsf{fma}\left(x, 1, 0.008333333333333333217685101601546193705872 \cdot {x}^{5}\right)\right) i\right))
double f(double x, double y) {
        double r56470 = x;
        double r56471 = exp(r56470);
        double r56472 = -r56470;
        double r56473 = exp(r56472);
        double r56474 = r56471 + r56473;
        double r56475 = 2.0;
        double r56476 = r56474 / r56475;
        double r56477 = y;
        double r56478 = cos(r56477);
        double r56479 = r56476 * r56478;
        double r56480 = r56471 - r56473;
        double r56481 = r56480 / r56475;
        double r56482 = sin(r56477);
        double r56483 = r56481 * r56482;
        double r56484 = /* ERROR: no complex support in C */;
        double r56485 = /* ERROR: no complex support in C */;
        return r56485;
}

double f(double x, double y) {
        double r56486 = x;
        double r56487 = exp(r56486);
        double r56488 = -r56486;
        double r56489 = exp(r56488);
        double r56490 = r56487 + r56489;
        double r56491 = 2.0;
        double r56492 = r56490 / r56491;
        double r56493 = y;
        double r56494 = cos(r56493);
        double r56495 = r56492 * r56494;
        double r56496 = sin(r56493);
        double r56497 = 0.16666666666666666;
        double r56498 = 3.0;
        double r56499 = pow(r56486, r56498);
        double r56500 = r56497 * r56499;
        double r56501 = 1.0;
        double r56502 = 0.008333333333333333;
        double r56503 = 5.0;
        double r56504 = pow(r56486, r56503);
        double r56505 = r56502 * r56504;
        double r56506 = fma(r56486, r56501, r56505);
        double r56507 = r56496 * r56506;
        double r56508 = fma(r56496, r56500, r56507);
        double r56509 = /* ERROR: no complex support in C */;
        double r56510 = /* ERROR: no complex support in C */;
        return r56510;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 44.2

    \[\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. Using strategy rm
  5. Applied pow10.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 \color{blue}{{\left(\sin y\right)}^{1}} i\right))\]
  6. Applied pow10.8

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

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \color{blue}{{\left(\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\right)}^{1}} i\right))\]
  8. Simplified0.9

    \[\leadsto \Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + {\color{blue}{\left(\frac{\sin y}{\frac{2}{\mathsf{fma}\left(\frac{1}{3}, {x}^{3}, \mathsf{fma}\left(\frac{1}{60}, {x}^{5}, 2 \cdot x\right)\right)}}\right)}}^{1} i\right))\]
  9. Taylor expanded around inf 0.8

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

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

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

Reproduce

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