Average Error: 42.9 → 0.4
Time: 19.9s
Precision: 64
\[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.015295351353249335:\\ \;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\\ \mathbf{else}:\\ \;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))\\ \end{array}\]
\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))
\begin{array}{l}
\mathbf{if}\;x \le -0.015295351353249335:\\
\;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\\

\mathbf{else}:\\
\;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))\\

\end{array}
double f(double x, double y) {
        double r39675 = x;
        double r39676 = exp(r39675);
        double r39677 = -r39675;
        double r39678 = exp(r39677);
        double r39679 = r39676 + r39678;
        double r39680 = 2.0;
        double r39681 = r39679 / r39680;
        double r39682 = y;
        double r39683 = cos(r39682);
        double r39684 = r39681 * r39683;
        double r39685 = r39676 - r39678;
        double r39686 = r39685 / r39680;
        double r39687 = sin(r39682);
        double r39688 = r39686 * r39687;
        double r39689 = /* ERROR: no complex support in C */;
        double r39690 = /* ERROR: no complex support in C */;
        return r39690;
}

double f(double x, double y) {
        double r39691 = x;
        double r39692 = -0.015295351353249335;
        bool r39693 = r39691 <= r39692;
        double r39694 = exp(r39691);
        double r39695 = -r39691;
        double r39696 = exp(r39695);
        double r39697 = r39694 + r39696;
        double r39698 = 2.0;
        double r39699 = r39697 / r39698;
        double r39700 = y;
        double r39701 = cos(r39700);
        double r39702 = r39699 * r39701;
        double r39703 = r39694 - r39696;
        double r39704 = r39703 / r39698;
        double r39705 = sin(r39700);
        double r39706 = r39704 * r39705;
        double r39707 = /* ERROR: no complex support in C */;
        double r39708 = /* ERROR: no complex support in C */;
        double r39709 = 0.3333333333333333;
        double r39710 = 3.0;
        double r39711 = pow(r39691, r39710);
        double r39712 = r39709 * r39711;
        double r39713 = 0.016666666666666666;
        double r39714 = 5.0;
        double r39715 = pow(r39691, r39714);
        double r39716 = r39713 * r39715;
        double r39717 = 2.0;
        double r39718 = r39717 * r39691;
        double r39719 = r39716 + r39718;
        double r39720 = r39712 + r39719;
        double r39721 = r39720 / r39698;
        double r39722 = r39721 * r39705;
        double r39723 = /* ERROR: no complex support in C */;
        double r39724 = /* ERROR: no complex support in C */;
        double r39725 = r39693 ? r39708 : r39724;
        return r39725;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Split input into 2 regimes
  2. if x < -0.015295351353249335

    1. Initial program 1.6

      \[\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\]

    if -0.015295351353249335 < x

    1. Initial program 43.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.4

      \[\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. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.015295351353249335:\\ \;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\\ \mathbf{else}:\\ \;\;\;\;\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y i\right))\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(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)))))