home *** CD-ROM | disk | FTP | other *** search
- /*
- * sqrt(a^2 + b^2)
- * (but carefully)
- */
-
- double sqrt();
- double
- hypot(a,b)
- double a,b;
- {
- double t;
- if(a<0) a = -a;
- if(b<0) b = -b;
- if(a > b) {
- t = a;
- a = b;
- b = t;
- }
- if(b==0) return(0.);
- a /= b;
- /*
- * pathological overflow possible
- * in the next line.
- */
- return(b*sqrt(1. + a*a));
- }
-
- struct complex
- {
- double r;
- double i;
- };
-
- double
- cabs(arg)
- struct complex arg;
- {
- double hypot();
-
- return(hypot(arg.r, arg.i));
- }