\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 r513541 = re;
double r513542 = r513541 * r513541;
double r513543 = im;
double r513544 = r513543 * r513543;
double r513545 = r513542 + r513544;
double r513546 = sqrt(r513545);
return r513546;
}
double f(double re, double im) {
double r513547 = re;
double r513548 = r513547 * r513547;
double r513549 = im;
double r513550 = r513549 * r513549;
double r513551 = r513548 + r513550;
double r513552 = sqrt(r513551);
return r513552;
}



Bits error versus re



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