\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\mathsf{fma}\left(\sin re, e^{im}, \frac{\sin re}{e^{im}}\right) \cdot 0.5double f(double re, double im) {
double r791346 = 0.5;
double r791347 = re;
double r791348 = sin(r791347);
double r791349 = r791346 * r791348;
double r791350 = 0.0;
double r791351 = im;
double r791352 = r791350 - r791351;
double r791353 = exp(r791352);
double r791354 = exp(r791351);
double r791355 = r791353 + r791354;
double r791356 = r791349 * r791355;
return r791356;
}
double f(double re, double im) {
double r791357 = re;
double r791358 = sin(r791357);
double r791359 = im;
double r791360 = exp(r791359);
double r791361 = r791358 / r791360;
double r791362 = fma(r791358, r791360, r791361);
double r791363 = 0.5;
double r791364 = r791362 * r791363;
return r791364;
}



Bits error versus re



Bits error versus im
Initial program 0.1
Taylor expanded around inf 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019170 +o rules:numerics
(FPCore (re im)
:name "math.sin on complex, real part"
(* (* 0.5 (sin re)) (+ (exp (- 0.0 im)) (exp im))))