#undef abs #include double f__cabs (double real, double imag) { double temp; if (real < 0) real = -real; if (imag < 0) imag = -imag; if (imag > real) { temp = real; real = imag; imag = temp; } if ((real + imag) == real) return (real); temp = imag / real; temp = real * sqrt (1.0 + temp * temp); /*overflow!! */ return (temp); }