re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r322531 = re;
double r322532 = r322531 * r322531;
double r322533 = im;
double r322534 = r322533 * r322533;
double r322535 = r322532 - r322534;
return r322535;
}
double f(double re, double im) {
double r322536 = im;
double r322537 = re;
double r322538 = r322536 + r322537;
double r322539 = r322537 - r322536;
double r322540 = r322538 * r322539;
return r322540;
}



Bits error versus re



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