\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\cos re \cdot \mathsf{fma}\left(e^{im}, 0.5, \frac{0.5}{e^{im}}\right)double f(double re, double im) {
double r723561 = 0.5;
double r723562 = re;
double r723563 = cos(r723562);
double r723564 = r723561 * r723563;
double r723565 = im;
double r723566 = -r723565;
double r723567 = exp(r723566);
double r723568 = exp(r723565);
double r723569 = r723567 + r723568;
double r723570 = r723564 * r723569;
return r723570;
}
double f(double re, double im) {
double r723571 = re;
double r723572 = cos(r723571);
double r723573 = im;
double r723574 = exp(r723573);
double r723575 = 0.5;
double r723576 = r723575 / r723574;
double r723577 = fma(r723574, r723575, r723576);
double r723578 = r723572 * r723577;
return r723578;
}



Bits error versus re



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