\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\left(e^{im} + e^{-im}\right) \cdot \left(0.5 \cdot \cos re\right)double f(double re, double im) {
double r2555903 = 0.5;
double r2555904 = re;
double r2555905 = cos(r2555904);
double r2555906 = r2555903 * r2555905;
double r2555907 = im;
double r2555908 = -r2555907;
double r2555909 = exp(r2555908);
double r2555910 = exp(r2555907);
double r2555911 = r2555909 + r2555910;
double r2555912 = r2555906 * r2555911;
return r2555912;
}
double f(double re, double im) {
double r2555913 = im;
double r2555914 = exp(r2555913);
double r2555915 = -r2555913;
double r2555916 = exp(r2555915);
double r2555917 = r2555914 + r2555916;
double r2555918 = 0.5;
double r2555919 = re;
double r2555920 = cos(r2555919);
double r2555921 = r2555918 * r2555920;
double r2555922 = r2555917 * r2555921;
return r2555922;
}



Bits error versus re



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