\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\frac{\frac{1}{3} \cdot {x}^{3} + \left(\frac{1}{60} \cdot {x}^{5} + 2 \cdot x\right)}{2} \cdot \sin ydouble f(double x, double y) {
double r52941 = x;
double r52942 = exp(r52941);
double r52943 = -r52941;
double r52944 = exp(r52943);
double r52945 = r52942 + r52944;
double r52946 = 2.0;
double r52947 = r52945 / r52946;
double r52948 = y;
double r52949 = cos(r52948);
double r52950 = r52947 * r52949;
double r52951 = r52942 - r52944;
double r52952 = r52951 / r52946;
double r52953 = sin(r52948);
double r52954 = r52952 * r52953;
double r52955 = /* ERROR: no complex support in C */;
double r52956 = /* ERROR: no complex support in C */;
return r52956;
}
double f(double x, double y) {
double r52957 = 0.3333333333333333;
double r52958 = x;
double r52959 = 3.0;
double r52960 = pow(r52958, r52959);
double r52961 = r52957 * r52960;
double r52962 = 0.016666666666666666;
double r52963 = 5.0;
double r52964 = pow(r52958, r52963);
double r52965 = r52962 * r52964;
double r52966 = 2.0;
double r52967 = r52966 * r52958;
double r52968 = r52965 + r52967;
double r52969 = r52961 + r52968;
double r52970 = 2.0;
double r52971 = r52969 / r52970;
double r52972 = y;
double r52973 = sin(r52972);
double r52974 = r52971 * r52973;
return r52974;
}



Bits error versus x



Bits error versus y
Initial program 43.3
Simplified43.3
Taylor expanded around 0 0.7
Final simplification0.7
herbie shell --seed 2019326
(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)))))