\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\mathsf{fma}\left(e^{im}, 0.5, \log \left(e^{\frac{0.5}{e^{im}}}\right)\right) \cdot \sin redouble f(double re, double im) {
double r214626 = 0.5;
double r214627 = re;
double r214628 = sin(r214627);
double r214629 = r214626 * r214628;
double r214630 = 0.0;
double r214631 = im;
double r214632 = r214630 - r214631;
double r214633 = exp(r214632);
double r214634 = exp(r214631);
double r214635 = r214633 + r214634;
double r214636 = r214629 * r214635;
return r214636;
}
double f(double re, double im) {
double r214637 = im;
double r214638 = exp(r214637);
double r214639 = 0.5;
double r214640 = r214639 / r214638;
double r214641 = exp(r214640);
double r214642 = log(r214641);
double r214643 = fma(r214638, r214639, r214642);
double r214644 = re;
double r214645 = sin(r214644);
double r214646 = r214643 * r214645;
return r214646;
}



Bits error versus re



Bits error versus im
Initial program 0.0
Simplified0.0
rmApplied add-log-exp0.2
Final simplification0.2
herbie shell --seed 2019151 +o rules:numerics
(FPCore (re im)
:name "math.sin on complex, real part"
(* (* 0.5 (sin re)) (+ (exp (- 0 im)) (exp im))))