\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 r49998 = 0.5;
double r49999 = re;
double r50000 = cos(r49999);
double r50001 = r49998 * r50000;
double r50002 = im;
double r50003 = -r50002;
double r50004 = exp(r50003);
double r50005 = exp(r50002);
double r50006 = r50004 + r50005;
double r50007 = r50001 * r50006;
return r50007;
}
double f(double re, double im) {
double r50008 = 0.5;
double r50009 = re;
double r50010 = cos(r50009);
double r50011 = r50008 * r50010;
double r50012 = im;
double r50013 = -r50012;
double r50014 = exp(r50013);
double r50015 = exp(r50012);
double r50016 = r50014 + r50015;
double r50017 = r50011 * r50016;
return r50017;
}



Bits error versus re



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