\sqrt{\left(\frac{\left(re \cdot re\right)}{\left(im \cdot im\right)}\right)}\sqrt{re \cdot re + im \cdot im}double f(double re, double im) {
double r843377 = re;
double r843378 = r843377 * r843377;
double r843379 = im;
double r843380 = r843379 * r843379;
double r843381 = r843378 + r843380;
double r843382 = sqrt(r843381);
return r843382;
}
double f(double re, double im) {
double r843383 = re;
double r843384 = r843383 * r843383;
double r843385 = im;
double r843386 = r843385 * r843385;
double r843387 = r843384 + r843386;
double r843388 = sqrt(r843387);
return r843388;
}



Bits error versus re



Bits error versus im
Initial program 0.6
Final simplification0.6
herbie shell --seed 2019121
(FPCore (re im)
:name "math.abs on complex"
(sqrt.p16 (+.p16 (*.p16 re re) (*.p16 im im))))