\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\mathsf{fma}\left(0.5 \cdot \sin re, e^{0.0 - im}, \left(0.5 \cdot \sin re\right) \cdot e^{im}\right)double f(double re, double im) {
double r30767 = 0.5;
double r30768 = re;
double r30769 = sin(r30768);
double r30770 = r30767 * r30769;
double r30771 = 0.0;
double r30772 = im;
double r30773 = r30771 - r30772;
double r30774 = exp(r30773);
double r30775 = exp(r30772);
double r30776 = r30774 + r30775;
double r30777 = r30770 * r30776;
return r30777;
}
double f(double re, double im) {
double r30778 = 0.5;
double r30779 = re;
double r30780 = sin(r30779);
double r30781 = r30778 * r30780;
double r30782 = 0.0;
double r30783 = im;
double r30784 = r30782 - r30783;
double r30785 = exp(r30784);
double r30786 = exp(r30783);
double r30787 = r30781 * r30786;
double r30788 = fma(r30781, r30785, r30787);
return r30788;
}



Bits error versus re



Bits error versus im
Initial program 0.0
rmApplied distribute-lft-in0.0
rmApplied fma-def0.0
Final simplification0.0
herbie shell --seed 2020021 +o rules:numerics
(FPCore (re im)
:name "math.sin on complex, real part"
:precision binary64
(* (* 0.5 (sin re)) (+ (exp (- 0.0 im)) (exp im))))