\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)0.5 \cdot \mathsf{fma}\left(e^{im}, \cos re, \frac{\cos re}{e^{im}}\right)double f(double re, double im) {
double r713268 = 0.5;
double r713269 = re;
double r713270 = cos(r713269);
double r713271 = r713268 * r713270;
double r713272 = im;
double r713273 = -r713272;
double r713274 = exp(r713273);
double r713275 = exp(r713272);
double r713276 = r713274 + r713275;
double r713277 = r713271 * r713276;
return r713277;
}
double f(double re, double im) {
double r713278 = 0.5;
double r713279 = im;
double r713280 = exp(r713279);
double r713281 = re;
double r713282 = cos(r713281);
double r713283 = r713282 / r713280;
double r713284 = fma(r713280, r713282, r713283);
double r713285 = r713278 * r713284;
return r713285;
}



Bits error versus re



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