\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\sqrt{\mathsf{fma}\left(0.5, e^{im}, \frac{0.5}{e^{im}}\right)} \cdot \left(\sqrt{\mathsf{fma}\left(0.5, e^{im}, \log \left(e^{\frac{0.5}{e^{im}}}\right)\right)} \cdot \cos re\right)double f(double re, double im) {
double r58558 = 0.5;
double r58559 = re;
double r58560 = cos(r58559);
double r58561 = r58558 * r58560;
double r58562 = im;
double r58563 = -r58562;
double r58564 = exp(r58563);
double r58565 = exp(r58562);
double r58566 = r58564 + r58565;
double r58567 = r58561 * r58566;
return r58567;
}
double f(double re, double im) {
double r58568 = 0.5;
double r58569 = im;
double r58570 = exp(r58569);
double r58571 = r58568 / r58570;
double r58572 = fma(r58568, r58570, r58571);
double r58573 = sqrt(r58572);
double r58574 = exp(r58571);
double r58575 = log(r58574);
double r58576 = fma(r58568, r58570, r58575);
double r58577 = sqrt(r58576);
double r58578 = re;
double r58579 = cos(r58578);
double r58580 = r58577 * r58579;
double r58581 = r58573 * r58580;
return r58581;
}



Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied associate-*l*0.0
rmApplied add-log-exp0.2
Final simplification0.2
herbie shell --seed 2020056 +o rules:numerics
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))