double f(double re, double im) {
double r3381011 = 0.5;
double r3381012 = re;
double r3381013 = cos(r3381012);
double r3381014 = r3381011 * r3381013;
double r3381015 = im;
double r3381016 = -r3381015;
double r3381017 = exp(r3381016);
double r3381018 = exp(r3381015);
double r3381019 = r3381017 + r3381018;
double r3381020 = r3381014 * r3381019;
return r3381020;
}
double f(double re, double im) {
double r3381021 = re;
double r3381022 = cos(r3381021);
double r3381023 = 0.5;
double r3381024 = im;
double r3381025 = exp(r3381024);
double r3381026 = r3381023 / r3381025;
double r3381027 = r3381026 * r3381026;
double r3381028 = r3381026 * r3381027;
double r3381029 = r3381023 * r3381025;
double r3381030 = r3381029 * r3381029;
double r3381031 = r3381030 * r3381029;
double r3381032 = r3381028 + r3381031;
double r3381033 = r3381022 * r3381032;
double r3381034 = r3381029 - r3381026;
double r3381035 = r3381034 * r3381029;
double r3381036 = r3381027 + r3381035;
double r3381037 = r3381033 / r3381036;
return r3381037;
}
\left(0.5 \cdot \cos re\right) \cdot \left(e^{-im} + e^{im}\right)\frac{\cos re \cdot \left(\frac{0.5}{e^{im}} \cdot \left(\frac{0.5}{e^{im}} \cdot \frac{0.5}{e^{im}}\right) + \left(\left(0.5 \cdot e^{im}\right) \cdot \left(0.5 \cdot e^{im}\right)\right) \cdot \left(0.5 \cdot e^{im}\right)\right)}{\frac{0.5}{e^{im}} \cdot \frac{0.5}{e^{im}} + \left(0.5 \cdot e^{im} - \frac{0.5}{e^{im}}\right) \cdot \left(0.5 \cdot e^{im}\right)}


Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
rmApplied flip3-+0.1
Applied associate-*l/0.1
Simplified0.1
rmApplied distribute-rgt-out--0.1
Final simplification0.1
herbie shell --seed 2019101
(FPCore (re im)
:name "math.cos on complex, real part"
(* (* 0.5 (cos re)) (+ (exp (- im)) (exp im))))