re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r1235 = re;
double r1236 = r1235 * r1235;
double r1237 = im;
double r1238 = r1237 * r1237;
double r1239 = r1236 - r1238;
return r1239;
}
double f(double re, double im) {
double r1240 = re;
double r1241 = im;
double r1242 = r1240 + r1241;
double r1243 = r1240 - r1241;
double r1244 = r1242 * r1243;
return r1244;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
rmApplied difference-of-squares0.0
Final simplification0.0
herbie shell --seed 2020046
(FPCore (re im)
:name "math.square on complex, real part"
:precision binary64
(- (* re re) (* im im)))