1*10448Sdlw /* 2*10448Sdlw * "@(#)cabs.c 1.1" 3*10448Sdlw */ 4*10448Sdlw 5*10448Sdlw double cabs(real, imag) 6*10448Sdlw double real, imag; 7*10448Sdlw { 8*10448Sdlw double temp, sqrt(); 9*10448Sdlw 10*10448Sdlw if(real < 0) 11*10448Sdlw real = -real; 12*10448Sdlw if(imag < 0) 13*10448Sdlw imag = -imag; 14*10448Sdlw if(imag > real){ 15*10448Sdlw temp = real; 16*10448Sdlw real = imag; 17*10448Sdlw imag = temp; 18*10448Sdlw } 19*10448Sdlw if((real+imag) == real) 20*10448Sdlw return(real); 21*10448Sdlw 22*10448Sdlw temp = imag/real; 23*10448Sdlw temp = real*sqrt(1.0 + temp*temp); /*overflow!!*/ 24*10448Sdlw return(temp); 25*10448Sdlw } 26