re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r1292 = re;
double r1293 = r1292 * r1292;
double r1294 = im;
double r1295 = r1294 * r1294;
double r1296 = r1293 - r1295;
return r1296;
}
double f(double re, double im) {
double r1297 = re;
double r1298 = im;
double r1299 = r1297 + r1298;
double r1300 = r1297 - r1298;
double r1301 = r1299 * r1300;
return r1301;
}



Bits error versus re



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