1: /*	@(#)hypot.c	4.1	12/25/82	*/
   2: 
   3: /*
   4:  * sqrt(a^2 + b^2)
   5:  *	(but carefully)
   6:  */
   7: 
   8: double sqrt();
   9: double
  10: hypot(a,b)
  11: double a,b;
  12: {
  13:     double t;
  14:     if(a<0) a = -a;
  15:     if(b<0) b = -b;
  16:     if(a > b) {
  17:         t = a;
  18:         a = b;
  19:         b = t;
  20:     }
  21:     if(b==0) return(0.);
  22:     a /= b;
  23:     /*
  24: 	 * pathological overflow possible
  25: 	 * in the next line.
  26: 	 */
  27:     return(b*sqrt(1. + a*a));
  28: }
  29: 
  30: struct  complex
  31: {
  32:     double  r;
  33:     double  i;
  34: };
  35: 
  36: double
  37: cabs(arg)
  38: struct complex arg;
  39: {
  40:     double hypot();
  41: 
  42:     return(hypot(arg.r, arg.i));
  43: }

Defined functions

hypot defined in line 9; used 7 times

Defined struct's

complex defined in line 30; used 2 times
  • in line 38(2)
Last modified: 1985-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2205
Valid CSS Valid XHTML 1.0 Strict