\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 r17273 = 0.5;
double r17274 = re;
double r17275 = sin(r17274);
double r17276 = r17273 * r17275;
double r17277 = 0.0;
double r17278 = im;
double r17279 = r17277 - r17278;
double r17280 = exp(r17279);
double r17281 = exp(r17278);
double r17282 = r17280 + r17281;
double r17283 = r17276 * r17282;
return r17283;
}
double f(double re, double im) {
double r17284 = 0.5;
double r17285 = re;
double r17286 = sin(r17285);
double r17287 = r17284 * r17286;
double r17288 = 0.0;
double r17289 = im;
double r17290 = r17288 - r17289;
double r17291 = exp(r17290);
double r17292 = exp(r17289);
double r17293 = r17287 * r17292;
double r17294 = fma(r17287, r17291, r17293);
return r17294;
}



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