re \cdot re - im \cdot im
re \cdot re - im \cdot im
double f(double re, double im) {
double r889619 = re;
double r889620 = r889619 * r889619;
double r889621 = im;
double r889622 = r889621 * r889621;
double r889623 = r889620 - r889622;
return r889623;
}
double f(double re, double im) {
double r889624 = re;
double r889625 = r889624 * r889624;
double r889626 = im;
double r889627 = r889626 * r889626;
double r889628 = r889625 - r889627;
return r889628;
}



Bits error versus re



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