\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\mathsf{fma}\left(e^{im}, \sin re \cdot 0.5, \frac{\sin re \cdot 0.5}{e^{im}}\right)double f(double re, double im) {
double r554571 = 0.5;
double r554572 = re;
double r554573 = sin(r554572);
double r554574 = r554571 * r554573;
double r554575 = 0.0;
double r554576 = im;
double r554577 = r554575 - r554576;
double r554578 = exp(r554577);
double r554579 = exp(r554576);
double r554580 = r554578 + r554579;
double r554581 = r554574 * r554580;
return r554581;
}
double f(double re, double im) {
double r554582 = im;
double r554583 = exp(r554582);
double r554584 = re;
double r554585 = sin(r554584);
double r554586 = 0.5;
double r554587 = r554585 * r554586;
double r554588 = r554587 / r554583;
double r554589 = fma(r554583, r554587, r554588);
return r554589;
}



Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019165 +o rules:numerics
(FPCore (re im)
:name "math.sin on complex, real part"
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im))))