\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\mathsf{fma}\left(0.5, e^{im}, \log \left(e^{\frac{0.5}{e^{im}}}\right)\right) \cdot \sin redouble f(double re, double im) {
double r584617 = 0.5;
double r584618 = re;
double r584619 = sin(r584618);
double r584620 = r584617 * r584619;
double r584621 = 0.0;
double r584622 = im;
double r584623 = r584621 - r584622;
double r584624 = exp(r584623);
double r584625 = exp(r584622);
double r584626 = r584624 + r584625;
double r584627 = r584620 * r584626;
return r584627;
}
double f(double re, double im) {
double r584628 = 0.5;
double r584629 = im;
double r584630 = exp(r584629);
double r584631 = r584628 / r584630;
double r584632 = exp(r584631);
double r584633 = log(r584632);
double r584634 = fma(r584628, r584630, r584633);
double r584635 = re;
double r584636 = sin(r584635);
double r584637 = r584634 * r584636;
return r584637;
}



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))))