\sqrt{re \cdot re + im \cdot im}\mathsf{hypot}\left(re, im\right)double f(double re, double im) {
double r1734653 = re;
double r1734654 = r1734653 * r1734653;
double r1734655 = im;
double r1734656 = r1734655 * r1734655;
double r1734657 = r1734654 + r1734656;
double r1734658 = sqrt(r1734657);
return r1734658;
}
double f(double re, double im) {
double r1734659 = re;
double r1734660 = im;
double r1734661 = hypot(r1734659, r1734660);
return r1734661;
}



Bits error versus re



Bits error versus im
Results
Initial program 29.5
Simplified0.0
Final simplification0.0
herbie shell --seed 2019149 +o rules:numerics
(FPCore (re im)
:name "math.abs on complex"
(sqrt (+ (* re re) (* im im))))