\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 r1667785 = 0.5;
double r1667786 = re;
double r1667787 = cos(r1667786);
double r1667788 = r1667785 * r1667787;
double r1667789 = im;
double r1667790 = -r1667789;
double r1667791 = exp(r1667790);
double r1667792 = exp(r1667789);
double r1667793 = r1667791 + r1667792;
double r1667794 = r1667788 * r1667793;
return r1667794;
}
double f(double re, double im) {
double r1667795 = im;
double r1667796 = exp(r1667795);
double r1667797 = -r1667795;
double r1667798 = exp(r1667797);
double r1667799 = r1667796 + r1667798;
double r1667800 = 0.5;
double r1667801 = re;
double r1667802 = cos(r1667801);
double r1667803 = r1667800 * r1667802;
double r1667804 = r1667799 * r1667803;
return r1667804;
}



Bits error versus re



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