\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{e^{-im}}, \sqrt{e^{-im}}, e^{im}\right)double f(double re, double im) {
double r53875 = 0.5;
double r53876 = re;
double r53877 = cos(r53876);
double r53878 = r53875 * r53877;
double r53879 = im;
double r53880 = -r53879;
double r53881 = exp(r53880);
double r53882 = exp(r53879);
double r53883 = r53881 + r53882;
double r53884 = r53878 * r53883;
return r53884;
}
double f(double re, double im) {
double r53885 = 0.5;
double r53886 = re;
double r53887 = cos(r53886);
double r53888 = r53885 * r53887;
double r53889 = im;
double r53890 = -r53889;
double r53891 = exp(r53890);
double r53892 = sqrt(r53891);
double r53893 = exp(r53889);
double r53894 = fma(r53892, r53892, r53893);
double r53895 = r53888 * r53894;
return r53895;
}



Bits error versus re



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