re \cdot re - im \cdot im
\left(im + re\right) \cdot \left(re - im\right)
double f(double re, double im) {
double r554363 = re;
double r554364 = r554363 * r554363;
double r554365 = im;
double r554366 = r554365 * r554365;
double r554367 = r554364 - r554366;
return r554367;
}
double f(double re, double im) {
double r554368 = im;
double r554369 = re;
double r554370 = r554368 + r554369;
double r554371 = r554369 - r554368;
double r554372 = r554370 * r554371;
return r554372;
}



Bits error versus re



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