\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\left(0.5 \cdot \sin re\right) \cdot e^{0.0 - im} + \left(0.5 \cdot \sin re\right) \cdot e^{im}double f(double re, double im) {
double r18098 = 0.5;
double r18099 = re;
double r18100 = sin(r18099);
double r18101 = r18098 * r18100;
double r18102 = 0.0;
double r18103 = im;
double r18104 = r18102 - r18103;
double r18105 = exp(r18104);
double r18106 = exp(r18103);
double r18107 = r18105 + r18106;
double r18108 = r18101 * r18107;
return r18108;
}
double f(double re, double im) {
double r18109 = 0.5;
double r18110 = re;
double r18111 = sin(r18110);
double r18112 = r18109 * r18111;
double r18113 = 0.0;
double r18114 = im;
double r18115 = r18113 - r18114;
double r18116 = exp(r18115);
double r18117 = r18112 * r18116;
double r18118 = exp(r18114);
double r18119 = r18112 * r18118;
double r18120 = r18117 + r18119;
return r18120;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.1
rmApplied distribute-lft-in0.1
Final simplification0.1
herbie shell --seed 2019362
(FPCore (re im)
:name "math.sin on complex, real part"
:precision binary64
(* (* 0.5 (sin re)) (+ (exp (- 0.0 im)) (exp im))))