\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)double f(double re, double im) {
double r32917 = 0.5;
double r32918 = re;
double r32919 = cos(r32918);
double r32920 = r32917 * r32919;
double r32921 = im;
double r32922 = -r32921;
double r32923 = exp(r32922);
double r32924 = exp(r32921);
double r32925 = r32923 + r32924;
double r32926 = r32920 * r32925;
return r32926;
}
double f(double re, double im) {
double r32927 = 0.5;
double r32928 = re;
double r32929 = cos(r32928);
double r32930 = r32927 * r32929;
double r32931 = im;
double r32932 = -r32931;
double r32933 = exp(r32932);
double r32934 = exp(r32931);
double r32935 = r32933 + r32934;
double r32936 = r32930 * r32935;
return r32936;
}



Bits error versus re



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