\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 r58346 = 0.5;
double r58347 = re;
double r58348 = cos(r58347);
double r58349 = r58346 * r58348;
double r58350 = im;
double r58351 = -r58350;
double r58352 = exp(r58351);
double r58353 = exp(r58350);
double r58354 = r58352 + r58353;
double r58355 = r58349 * r58354;
return r58355;
}
double f(double re, double im) {
double r58356 = 0.5;
double r58357 = im;
double r58358 = exp(r58357);
double r58359 = r58356 / r58358;
double r58360 = fma(r58356, r58358, r58359);
double r58361 = sqrt(r58360);
double r58362 = re;
double r58363 = cos(r58362);
double r58364 = r58361 * r58363;
double r58365 = r58361 * r58364;
return r58365;
}



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 2019344 +o rules:numerics
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))