re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r228438 = re;
double r228439 = r228438 * r228438;
double r228440 = im;
double r228441 = r228440 * r228440;
double r228442 = r228439 - r228441;
return r228442;
}
double f(double re, double im) {
double r228443 = re;
double r228444 = im;
double r228445 = r228443 + r228444;
double r228446 = r228443 - r228444;
double r228447 = r228445 * r228446;
return r228447;
}



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 2019133
(FPCore (re im)
:name "math.square on complex, real part"
(- (* re re) (* im im)))