\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\sqrt{\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right)} \cdot \left(\sqrt{\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right)} \cdot \cos re\right)double f(double re, double im) {
double r92806 = 0.5;
double r92807 = re;
double r92808 = cos(r92807);
double r92809 = r92806 * r92808;
double r92810 = im;
double r92811 = -r92810;
double r92812 = exp(r92811);
double r92813 = exp(r92810);
double r92814 = r92812 + r92813;
double r92815 = r92809 * r92814;
return r92815;
}
double f(double re, double im) {
double r92816 = 0.5;
double r92817 = im;
double r92818 = exp(r92817);
double r92819 = r92816 / r92818;
double r92820 = fma(r92816, r92818, r92819);
double r92821 = sqrt(r92820);
double r92822 = re;
double r92823 = cos(r92822);
double r92824 = r92821 * r92823;
double r92825 = r92821 * r92824;
return r92825;
}



Bits error versus re



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