re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r8432 = re;
double r8433 = im;
double r8434 = r8432 * r8433;
double r8435 = r8433 * r8432;
double r8436 = r8434 + r8435;
return r8436;
}
double f(double re, double im) {
double r8437 = re;
double r8438 = im;
double r8439 = r8438 + r8438;
double r8440 = r8437 * r8439;
return r8440;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Simplified0
Final simplification0
herbie shell --seed 2019124 +o rules:numerics
(FPCore (re im)
:name "math.square on complex, imaginary part"
(+ (* re im) (* im re)))