\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\mathsf{fma}\left(\left(e^{im}\right), 0.5, \left(\frac{0.5}{e^{im}}\right)\right) \cdot \cos redouble f(double re, double im) {
double r291502 = 0.5;
double r291503 = re;
double r291504 = cos(r291503);
double r291505 = r291502 * r291504;
double r291506 = im;
double r291507 = -r291506;
double r291508 = exp(r291507);
double r291509 = exp(r291506);
double r291510 = r291508 + r291509;
double r291511 = r291505 * r291510;
return r291511;
}
double f(double re, double im) {
double r291512 = im;
double r291513 = exp(r291512);
double r291514 = 0.5;
double r291515 = r291514 / r291513;
double r291516 = fma(r291513, r291514, r291515);
double r291517 = re;
double r291518 = cos(r291517);
double r291519 = r291516 * r291518;
return r291519;
}



Bits error versus re



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