\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)\left(0.5 \cdot \sin re\right) \cdot \left(e^{0.0 - im} + e^{im}\right)double f(double re, double im) {
double r30279 = 0.5;
double r30280 = re;
double r30281 = sin(r30280);
double r30282 = r30279 * r30281;
double r30283 = 0.0;
double r30284 = im;
double r30285 = r30283 - r30284;
double r30286 = exp(r30285);
double r30287 = exp(r30284);
double r30288 = r30286 + r30287;
double r30289 = r30282 * r30288;
return r30289;
}
double f(double re, double im) {
double r30290 = 0.5;
double r30291 = re;
double r30292 = sin(r30291);
double r30293 = r30290 * r30292;
double r30294 = 0.0;
double r30295 = im;
double r30296 = r30294 - r30295;
double r30297 = exp(r30296);
double r30298 = exp(r30295);
double r30299 = r30297 + r30298;
double r30300 = r30293 * r30299;
return r30300;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020035 +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))))