\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 r115981 = 0.5;
double r115982 = re;
double r115983 = cos(r115982);
double r115984 = r115981 * r115983;
double r115985 = im;
double r115986 = -r115985;
double r115987 = exp(r115986);
double r115988 = exp(r115985);
double r115989 = r115987 + r115988;
double r115990 = r115984 * r115989;
return r115990;
}
double f(double re, double im) {
double r115991 = 0.5;
double r115992 = im;
double r115993 = exp(r115992);
double r115994 = r115991 / r115993;
double r115995 = fma(r115991, r115993, r115994);
double r115996 = re;
double r115997 = cos(r115996);
double r115998 = r115995 * r115997;
return r115998;
}



Bits error versus re



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