\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\frac{\left(0.5 \cdot \cos re\right) \cdot \left({\left(e^{im}\right)}^{-3} + {\left(e^{im}\right)}^{3}\right)}{e^{-im} \cdot e^{-im} + \left(e^{im + im} - e^{im} \cdot e^{-im}\right)}(FPCore (re im) :precision binary64 (* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))
(FPCore (re im) :precision binary64 (/ (* (* 0.5 (cos re)) (+ (pow (exp im) -3.0) (pow (exp im) 3.0))) (+ (* (exp (- im)) (exp (- im))) (- (exp (+ im im)) (* (exp im) (exp (- im)))))))
double code(double re, double im) {
return (0.5 * cos(re)) * (exp(-im) + exp(im));
}
double code(double re, double im) {
return ((0.5 * cos(re)) * (pow(exp(im), -3.0) + pow(exp(im), 3.0))) / ((exp(-im) * exp(-im)) + (exp(im + im) - (exp(im) * exp(-im))));
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
rmApplied flip3-+_binary640.2
Applied associate-*r/_binary640.2
Simplified0.2
rmApplied prod-exp_binary640.2
Final simplification0.2
herbie shell --seed 2021163
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))