\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.0177843948522572078:\\
\;\;\;\;\frac{\sqrt{e^{x}} + \sqrt{e^{-x}}}{\sqrt{2}} \cdot \left(\frac{\sqrt{e^{x}} - \sqrt{e^{-x}}}{\sqrt{2}} \cdot \sin y\right)\\
\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 r45225 = x;
double r45226 = exp(r45225);
double r45227 = -r45225;
double r45228 = exp(r45227);
double r45229 = r45226 + r45228;
double r45230 = 2.0;
double r45231 = r45229 / r45230;
double r45232 = y;
double r45233 = cos(r45232);
double r45234 = r45231 * r45233;
double r45235 = r45226 - r45228;
double r45236 = r45235 / r45230;
double r45237 = sin(r45232);
double r45238 = r45236 * r45237;
double r45239 = /* ERROR: no complex support in C */;
double r45240 = /* ERROR: no complex support in C */;
return r45240;
}
double f(double x, double y) {
double r45241 = x;
double r45242 = -0.017784394852257208;
bool r45243 = r45241 <= r45242;
double r45244 = exp(r45241);
double r45245 = sqrt(r45244);
double r45246 = -r45241;
double r45247 = exp(r45246);
double r45248 = sqrt(r45247);
double r45249 = r45245 + r45248;
double r45250 = 2.0;
double r45251 = sqrt(r45250);
double r45252 = r45249 / r45251;
double r45253 = r45245 - r45248;
double r45254 = r45253 / r45251;
double r45255 = y;
double r45256 = sin(r45255);
double r45257 = r45254 * r45256;
double r45258 = r45252 * r45257;
double r45259 = 0.3333333333333333;
double r45260 = 3.0;
double r45261 = pow(r45241, r45260);
double r45262 = r45259 * r45261;
double r45263 = 0.016666666666666666;
double r45264 = 5.0;
double r45265 = pow(r45241, r45264);
double r45266 = r45263 * r45265;
double r45267 = 2.0;
double r45268 = r45267 * r45241;
double r45269 = r45266 + r45268;
double r45270 = r45262 + r45269;
double r45271 = r45270 / r45250;
double r45272 = r45271 * r45256;
double r45273 = r45243 ? r45258 : r45272;
return r45273;
}



Bits error versus x



Bits error versus y
if x < -0.017784394852257208Initial program 1.5
Simplified1.5
rmApplied add-sqr-sqrt2.2
Applied add-sqr-sqrt2.4
Applied add-sqr-sqrt2.5
Applied difference-of-squares2.5
Applied times-frac2.3
Applied associate-*l*2.3
if -0.017784394852257208 < x Initial program 43.2
Simplified43.2
Taylor expanded around 0 0.4
Final simplification0.4
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)))))