\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\left(0.5 \cdot \cos re\right) \cdot \mathsf{fma}\left(\sqrt[3]{e^{-im}} \cdot \sqrt[3]{e^{-im}}, \sqrt[3]{e^{-im}}, e^{im}\right)double f(double re, double im) {
double r42505 = 0.5;
double r42506 = re;
double r42507 = cos(r42506);
double r42508 = r42505 * r42507;
double r42509 = im;
double r42510 = -r42509;
double r42511 = exp(r42510);
double r42512 = exp(r42509);
double r42513 = r42511 + r42512;
double r42514 = r42508 * r42513;
return r42514;
}
double f(double re, double im) {
double r42515 = 0.5;
double r42516 = re;
double r42517 = cos(r42516);
double r42518 = r42515 * r42517;
double r42519 = im;
double r42520 = -r42519;
double r42521 = exp(r42520);
double r42522 = cbrt(r42521);
double r42523 = r42522 * r42522;
double r42524 = exp(r42519);
double r42525 = fma(r42523, r42522, r42524);
double r42526 = r42518 * r42525;
return r42526;
}



Bits error versus re



Bits error versus im
Initial program 0.0
rmApplied add-cube-cbrt0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019304 +o rules:numerics
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))