\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\left(\frac{1}{2} \cdot \cos re\right) \cdot \left(\frac{1}{12} \cdot {im}^{4} + \left({im}^{2} + 2\right)\right)double f(double re, double im) {
double r63601 = 0.5;
double r63602 = re;
double r63603 = cos(r63602);
double r63604 = r63601 * r63603;
double r63605 = im;
double r63606 = -r63605;
double r63607 = exp(r63606);
double r63608 = exp(r63605);
double r63609 = r63607 + r63608;
double r63610 = r63604 * r63609;
return r63610;
}
double f(double re, double im) {
double r63611 = 1.0;
double r63612 = 2.0;
double r63613 = r63611 / r63612;
double r63614 = re;
double r63615 = cos(r63614);
double r63616 = r63613 * r63615;
double r63617 = 0.08333333333333333;
double r63618 = im;
double r63619 = 4.0;
double r63620 = pow(r63618, r63619);
double r63621 = r63617 * r63620;
double r63622 = 2.0;
double r63623 = pow(r63618, r63622);
double r63624 = r63623 + r63622;
double r63625 = r63621 + r63624;
double r63626 = r63616 * r63625;
return r63626;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Simplified0.0
Taylor expanded around 0 0.7
Final simplification0.7
herbie shell --seed 2019304
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))