\Im(\left(\frac{e^{x} + e^{-x}}{2} \cdot \cos y + \frac{e^{x} - e^{-x}}{2} \cdot \sin y i\right))\left(\frac{\left(\frac{1}{3} \cdot {x}^{3} + \frac{1}{60} \cdot {x}^{5}\right) + 2 \cdot x}{2} \cdot \left(\left(\sqrt[3]{\sin y} \cdot \sqrt[3]{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}\right) \cdot \sqrt[3]{\sqrt[3]{\sin y}}\right)\right) \cdot \sqrt[3]{\sin y}double f(double x, double y) {
double r34826 = x;
double r34827 = exp(r34826);
double r34828 = -r34826;
double r34829 = exp(r34828);
double r34830 = r34827 + r34829;
double r34831 = 2.0;
double r34832 = r34830 / r34831;
double r34833 = y;
double r34834 = cos(r34833);
double r34835 = r34832 * r34834;
double r34836 = r34827 - r34829;
double r34837 = r34836 / r34831;
double r34838 = sin(r34833);
double r34839 = r34837 * r34838;
double r34840 = /* ERROR: no complex support in C */;
double r34841 = /* ERROR: no complex support in C */;
return r34841;
}
double f(double x, double y) {
double r34842 = 0.3333333333333333;
double r34843 = x;
double r34844 = 3.0;
double r34845 = pow(r34843, r34844);
double r34846 = r34842 * r34845;
double r34847 = 0.016666666666666666;
double r34848 = 5.0;
double r34849 = pow(r34843, r34848);
double r34850 = r34847 * r34849;
double r34851 = r34846 + r34850;
double r34852 = 2.0;
double r34853 = r34852 * r34843;
double r34854 = r34851 + r34853;
double r34855 = 2.0;
double r34856 = r34854 / r34855;
double r34857 = y;
double r34858 = sin(r34857);
double r34859 = cbrt(r34858);
double r34860 = r34859 * r34859;
double r34861 = cbrt(r34860);
double r34862 = r34859 * r34861;
double r34863 = cbrt(r34859);
double r34864 = r34862 * r34863;
double r34865 = r34856 * r34864;
double r34866 = r34865 * r34859;
return r34866;
}



Bits error versus x



Bits error versus y
Initial program 43.4
Simplified43.4
Taylor expanded around 0 0.7
rmApplied associate-+r+0.7
rmApplied add-cube-cbrt1.6
Applied associate-*r*1.6
rmApplied add-cube-cbrt1.6
Applied cbrt-prod1.7
Applied associate-*r*1.7
Final simplification1.7
herbie shell --seed 2019344
(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)))))