Average Error: 43.9 → 0.7
Time: 13.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 r54759 = x;
        double r54760 = exp(r54759);
        double r54761 = -r54759;
        double r54762 = exp(r54761);
        double r54763 = r54760 + r54762;
        double r54764 = 2.0;
        double r54765 = r54763 / r54764;
        double r54766 = y;
        double r54767 = cos(r54766);
        double r54768 = r54765 * r54767;
        double r54769 = r54760 - r54762;
        double r54770 = r54769 / r54764;
        double r54771 = sin(r54766);
        double r54772 = r54770 * r54771;
        double r54773 = /* ERROR: no complex support in C */;
        double r54774 = /* ERROR: no complex support in C */;
        return r54774;
}

double f(double x, double y) {
        double r54775 = x;
        double r54776 = exp(r54775);
        double r54777 = -r54775;
        double r54778 = exp(r54777);
        double r54779 = r54776 + r54778;
        double r54780 = 2.0;
        double r54781 = r54779 / r54780;
        double r54782 = y;
        double r54783 = cos(r54782);
        double r54784 = r54781 * r54783;
        double r54785 = 0.3333333333333333;
        double r54786 = 3.0;
        double r54787 = pow(r54775, r54786);
        double r54788 = 0.016666666666666666;
        double r54789 = 5.0;
        double r54790 = pow(r54775, r54789);
        double r54791 = 2.0;
        double r54792 = r54791 * r54775;
        double r54793 = fma(r54788, r54790, r54792);
        double r54794 = fma(r54785, r54787, r54793);
        double r54795 = r54794 / r54780;
        double r54796 = sin(r54782);
        double r54797 = r54795 * r54796;
        double r54798 = /* ERROR: no complex support in C */;
        double r54799 = /* ERROR: no complex support in C */;
        return r54799;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 43.9

    \[\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.7

    \[\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.7

    \[\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.7

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