re \cdot re - im \cdot im
\left(re + im\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r253366 = re;
double r253367 = r253366 * r253366;
double r253368 = im;
double r253369 = r253368 * r253368;
double r253370 = r253367 - r253369;
return r253370;
}
double f(double re, double im) {
double r253371 = re;
double r253372 = im;
double r253373 = r253371 + r253372;
double r253374 = r253371 - r253372;
double r253375 = r253373 * r253374;
return r253375;
}



Bits error versus re



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