\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 r919823 = 0.5;
double r919824 = re;
double r919825 = cos(r919824);
double r919826 = r919823 * r919825;
double r919827 = im;
double r919828 = -r919827;
double r919829 = exp(r919828);
double r919830 = exp(r919827);
double r919831 = r919829 + r919830;
double r919832 = r919826 * r919831;
return r919832;
}
double f(double re, double im) {
double r919833 = re;
double r919834 = cos(r919833);
double r919835 = im;
double r919836 = exp(r919835);
double r919837 = 0.5;
double r919838 = r919837 / r919836;
double r919839 = fma(r919836, r919837, r919838);
double r919840 = r919834 * r919839;
return r919840;
}



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))))