\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\mathsf{fma}\left(\left(e^{im}\right), 0.5, \left(\frac{0.5}{e^{im}}\right)\right) \cdot \cos redouble f(double re, double im) {
double r879194 = 0.5;
double r879195 = re;
double r879196 = cos(r879195);
double r879197 = r879194 * r879196;
double r879198 = im;
double r879199 = -r879198;
double r879200 = exp(r879199);
double r879201 = exp(r879198);
double r879202 = r879200 + r879201;
double r879203 = r879197 * r879202;
return r879203;
}
double f(double re, double im) {
double r879204 = im;
double r879205 = exp(r879204);
double r879206 = 0.5;
double r879207 = r879206 / r879205;
double r879208 = fma(r879205, r879206, r879207);
double r879209 = re;
double r879210 = cos(r879209);
double r879211 = r879208 * r879210;
return r879211;
}



Bits error versus re



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