re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r8378 = re;
double r8379 = im;
double r8380 = r8378 * r8379;
double r8381 = r8379 * r8378;
double r8382 = r8380 + r8381;
return r8382;
}
double f(double re, double im) {
double r8383 = re;
double r8384 = im;
double r8385 = r8384 + r8384;
double r8386 = r8383 * r8385;
return r8386;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019347 +o rules:numerics
(FPCore (re im)
:name "math.square on complex, imaginary part"
:precision binary64
(+ (* re im) (* im re)))