\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right) \cdot \cos redouble f(double re, double im) {
double r57693 = 0.5;
double r57694 = re;
double r57695 = cos(r57694);
double r57696 = r57693 * r57695;
double r57697 = im;
double r57698 = -r57697;
double r57699 = exp(r57698);
double r57700 = exp(r57697);
double r57701 = r57699 + r57700;
double r57702 = r57696 * r57701;
return r57702;
}
double f(double re, double im) {
double r57703 = 0.5;
double r57704 = im;
double r57705 = exp(r57704);
double r57706 = r57703 / r57705;
double r57707 = fma(r57703, r57705, r57706);
double r57708 = re;
double r57709 = cos(r57708);
double r57710 = r57707 * r57709;
return r57710;
}



Bits error versus re



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