\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 r32405 = 0.5;
double r32406 = re;
double r32407 = cos(r32406);
double r32408 = r32405 * r32407;
double r32409 = im;
double r32410 = -r32409;
double r32411 = exp(r32410);
double r32412 = exp(r32409);
double r32413 = r32411 + r32412;
double r32414 = r32408 * r32413;
return r32414;
}
double f(double re, double im) {
double r32415 = 0.5;
double r32416 = re;
double r32417 = cos(r32416);
double r32418 = r32415 * r32417;
double r32419 = im;
double r32420 = -r32419;
double r32421 = exp(r32420);
double r32422 = exp(r32419);
double r32423 = r32421 + r32422;
double r32424 = r32418 * r32423;
return r32424;
}



Bits error versus re



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