\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 r55118 = 0.5;
double r55119 = re;
double r55120 = cos(r55119);
double r55121 = r55118 * r55120;
double r55122 = im;
double r55123 = -r55122;
double r55124 = exp(r55123);
double r55125 = exp(r55122);
double r55126 = r55124 + r55125;
double r55127 = r55121 * r55126;
return r55127;
}
double f(double re, double im) {
double r55128 = 0.5;
double r55129 = re;
double r55130 = cos(r55129);
double r55131 = r55128 * r55130;
double r55132 = im;
double r55133 = -r55132;
double r55134 = exp(r55133);
double r55135 = exp(r55132);
double r55136 = r55134 + r55135;
double r55137 = r55131 * r55136;
return r55137;
}



Bits error versus re



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