\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right) \cdot \cos redouble f(double re, double im) {
double r49441 = 0.5;
double r49442 = re;
double r49443 = cos(r49442);
double r49444 = r49441 * r49443;
double r49445 = im;
double r49446 = -r49445;
double r49447 = exp(r49446);
double r49448 = exp(r49445);
double r49449 = r49447 + r49448;
double r49450 = r49444 * r49449;
return r49450;
}
double f(double re, double im) {
double r49451 = 0.5;
double r49452 = im;
double r49453 = exp(r49452);
double r49454 = r49451 / r49453;
double r49455 = fma(r49451, r49453, r49454);
double r49456 = re;
double r49457 = cos(r49456);
double r49458 = r49455 * r49457;
return r49458;
}



Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019352 +o rules:numerics
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))