\left(0.5 \cdot \sin re\right) \cdot \left(e^{0 - im} + e^{im}\right)\sin re \cdot \mathsf{fma}\left(e^{im}, 0.5, \frac{0.5}{e^{im}}\right)double f(double re, double im) {
double r456005 = 0.5;
double r456006 = re;
double r456007 = sin(r456006);
double r456008 = r456005 * r456007;
double r456009 = 0.0;
double r456010 = im;
double r456011 = r456009 - r456010;
double r456012 = exp(r456011);
double r456013 = exp(r456010);
double r456014 = r456012 + r456013;
double r456015 = r456008 * r456014;
return r456015;
}
double f(double re, double im) {
double r456016 = re;
double r456017 = sin(r456016);
double r456018 = im;
double r456019 = exp(r456018);
double r456020 = 0.5;
double r456021 = r456020 / r456019;
double r456022 = fma(r456019, r456020, r456021);
double r456023 = r456017 * r456022;
return r456023;
}



Bits error versus re



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