\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\mathsf{fma}\left(e^{im}, 0.5 \cdot \cos re, \frac{0.5 \cdot \cos re}{e^{im}}\right)double f(double re, double im) {
double r66308 = 0.5;
double r66309 = re;
double r66310 = cos(r66309);
double r66311 = r66308 * r66310;
double r66312 = im;
double r66313 = -r66312;
double r66314 = exp(r66313);
double r66315 = exp(r66312);
double r66316 = r66314 + r66315;
double r66317 = r66311 * r66316;
return r66317;
}
double f(double re, double im) {
double r66318 = im;
double r66319 = exp(r66318);
double r66320 = 0.5;
double r66321 = re;
double r66322 = cos(r66321);
double r66323 = r66320 * r66322;
double r66324 = r66323 / r66319;
double r66325 = fma(r66319, r66323, r66324);
return r66325;
}



Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
rmApplied *-un-lft-identity0.0
Applied add-sqr-sqrt0.0
Applied times-frac0.0
Simplified0.0
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020060 +o rules:numerics
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))