re \cdot re - im \cdot im
\left(re - im\right) \cdot \left(im + re\right)
double f(double re, double im) {
double r366474 = re;
double r366475 = r366474 * r366474;
double r366476 = im;
double r366477 = r366476 * r366476;
double r366478 = r366475 - r366477;
return r366478;
}
double f(double re, double im) {
double r366479 = re;
double r366480 = im;
double r366481 = r366479 - r366480;
double r366482 = r366480 + r366479;
double r366483 = r366481 * r366482;
return r366483;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019168
(FPCore (re im)
:name "math.square on complex, real part"
(- (* re re) (* im im)))