re \cdot im + im \cdot re
re \cdot \left(im + im\right)
double f(double re, double im) {
double r196131 = re;
double r196132 = im;
double r196133 = r196131 * r196132;
double r196134 = r196132 * r196131;
double r196135 = r196133 + r196134;
return r196135;
}
double f(double re, double im) {
double r196136 = re;
double r196137 = im;
double r196138 = r196137 + r196137;
double r196139 = r196136 * r196138;
return r196139;
}



Bits error versus re



Bits error versus im
Results
Initial program 0.0
Simplified0.0
rmApplied distribute-lft-out0.0
Final simplification0.0
herbie shell --seed 2019163
(FPCore (re im)
:name "math.square on complex, imaginary part"
(+ (* re im) (* im re)))