re \cdot re - im \cdot im
\left(re - im\right) \cdot \left(re + im\right)
double f(double re, double im) {
double r1422 = re;
double r1423 = r1422 * r1422;
double r1424 = im;
double r1425 = r1424 * r1424;
double r1426 = r1423 - r1425;
return r1426;
}
double f(double re, double im) {
double r1427 = re;
double r1428 = im;
double r1429 = r1427 - r1428;
double r1430 = r1427 + r1428;
double r1431 = r1429 * r1430;
return r1431;
}



Bits error versus re



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