\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;
}



Bits error versus x



Bits error versus y
if x < -0.012882299779342181Initial program 2.8
Simplified2.8
rmApplied add-cube-cbrt3.5
if -0.012882299779342181 < x Initial program 43.5
Simplified43.5
Taylor expanded around 0 0.4
Final simplification0.5
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)))))