\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 r22701 = 0.5;
double r22702 = re;
double r22703 = sin(r22702);
double r22704 = r22701 * r22703;
double r22705 = 0.0;
double r22706 = im;
double r22707 = r22705 - r22706;
double r22708 = exp(r22707);
double r22709 = exp(r22706);
double r22710 = r22708 + r22709;
double r22711 = r22704 * r22710;
return r22711;
}
double f(double re, double im) {
double r22712 = 0.5;
double r22713 = re;
double r22714 = sin(r22713);
double r22715 = r22712 * r22714;
double r22716 = 0.0;
double r22717 = im;
double r22718 = r22716 - r22717;
double r22719 = exp(r22718);
double r22720 = exp(r22717);
double r22721 = r22715 * r22720;
double r22722 = fma(r22715, r22719, r22721);
return r22722;
}



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