Average Error: 43.2 → 0.5
Time: 44.2s
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.01288229977934218090096507580710749607533:\\ \;\;\;\;\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin y\\ \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.01288229977934218090096507580710749607533:\\
\;\;\;\;\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\\

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

\end{array}
double f(double x, double y) {
        double r43654 = x;
        double r43655 = exp(r43654);
        double r43656 = -r43654;
        double r43657 = exp(r43656);
        double r43658 = r43655 + r43657;
        double r43659 = 2.0;
        double r43660 = r43658 / r43659;
        double r43661 = y;
        double r43662 = cos(r43661);
        double r43663 = r43660 * r43662;
        double r43664 = r43655 - r43657;
        double r43665 = r43664 / r43659;
        double r43666 = sin(r43661);
        double r43667 = r43665 * r43666;
        double r43668 = /* ERROR: no complex support in C */;
        double r43669 = /* ERROR: no complex support in C */;
        return r43669;
}

double f(double x, double y) {
        double r43670 = x;
        double r43671 = -0.012882299779342181;
        bool r43672 = r43670 <= r43671;
        double r43673 = exp(r43670);
        double r43674 = -r43670;
        double r43675 = exp(r43674);
        double r43676 = r43673 - r43675;
        double r43677 = 2.0;
        double r43678 = r43676 / r43677;
        double r43679 = y;
        double r43680 = sin(r43679);
        double r43681 = r43678 * r43680;
        double r43682 = cbrt(r43681);
        double r43683 = r43682 * r43682;
        double r43684 = r43683 * r43682;
        double r43685 = 0.3333333333333333;
        double r43686 = 3.0;
        double r43687 = pow(r43670, r43686);
        double r43688 = r43685 * r43687;
        double r43689 = 0.016666666666666666;
        double r43690 = 5.0;
        double r43691 = pow(r43670, r43690);
        double r43692 = r43689 * r43691;
        double r43693 = 2.0;
        double r43694 = r43693 * r43670;
        double r43695 = r43692 + r43694;
        double r43696 = r43688 + r43695;
        double r43697 = r43696 / r43677;
        double r43698 = r43697 * r43680;
        double r43699 = r43672 ? r43684 : r43698;
        return r43699;
}

Error

Bits error versus x

Bits error versus y

Derivation

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

    1. Initial program 2.8

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

      \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt3.5

      \[\leadsto \color{blue}{\left(\sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y} \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\right) \cdot \sqrt[3]{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}}\]

    if -0.012882299779342181 < x

    1. Initial program 43.5

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

      \[\leadsto \color{blue}{\frac{e^{x} - e^{-x}}{2} \cdot \sin y}\]
    3. Taylor expanded around 0 0.4

      \[\leadsto \frac{\color{blue}{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}}{2} \cdot \sin y\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.5

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

Reproduce

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