\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 r48197 = x;
double r48198 = exp(r48197);
double r48199 = -r48197;
double r48200 = exp(r48199);
double r48201 = r48198 + r48200;
double r48202 = 2.0;
double r48203 = r48201 / r48202;
double r48204 = y;
double r48205 = cos(r48204);
double r48206 = r48203 * r48205;
double r48207 = r48198 - r48200;
double r48208 = r48207 / r48202;
double r48209 = sin(r48204);
double r48210 = r48208 * r48209;
double r48211 = /* ERROR: no complex support in C */;
double r48212 = /* ERROR: no complex support in C */;
return r48212;
}
double f(double x, double y) {
double r48213 = x;
double r48214 = -0.012882299779342181;
bool r48215 = r48213 <= r48214;
double r48216 = exp(r48213);
double r48217 = -r48213;
double r48218 = exp(r48217);
double r48219 = r48216 - r48218;
double r48220 = 2.0;
double r48221 = r48219 / r48220;
double r48222 = y;
double r48223 = sin(r48222);
double r48224 = r48221 * r48223;
double r48225 = cbrt(r48224);
double r48226 = r48225 * r48225;
double r48227 = r48226 * r48225;
double r48228 = 0.3333333333333333;
double r48229 = 3.0;
double r48230 = pow(r48213, r48229);
double r48231 = r48228 * r48230;
double r48232 = 0.016666666666666666;
double r48233 = 5.0;
double r48234 = pow(r48213, r48233);
double r48235 = r48232 * r48234;
double r48236 = 2.0;
double r48237 = r48236 * r48213;
double r48238 = r48235 + r48237;
double r48239 = r48231 + r48238;
double r48240 = r48239 / r48220;
double r48241 = r48240 * r48223;
double r48242 = r48215 ? r48227 : r48241;
return r48242;
}



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)))))