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









Bits error versus re









Bits error versus im
Results
| Alternative 1 | |
|---|---|
| Error | 0.7 |
| Cost | 13696 |
| Alternative 2 | |
|---|---|
| Error | 0.9 |
| Cost | 13376 |
| Alternative 3 | |
|---|---|
| Error | 0.9 |
| Cost | 6976 |
| Alternative 4 | |
|---|---|
| Error | 1.2 |
| Cost | 6464 |
| Alternative 5 | |
|---|---|
| Error | 29.5 |
| Cost | 64 |
| Alternative 6 | |
|---|---|
| Error | 59.8 |
| Cost | 64 |

Initial program 0.0
rmApplied *-un-lft-identity_binary64_11010.0
rmApplied pow1_binary64_11620.0
Applied pow1_binary64_11620.0
Applied pow1_binary64_11620.0
Applied pow-prod-down_binary64_11720.0
Applied pow-prod-down_binary64_11720.0
rmApplied pow1_binary64_11620.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2021014
(FPCore (re im)
:name "math.cos on complex, real part"
:precision binary64
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))