GNU/Linux | 
					CentOS 4.8 | 
					i386 | 
![]()  | 
					zrotg(l) | 
					![]()  | 
				
subroutine zrotg(ca,cb,c,s) 
double complex ca,cb,s 
double precision c 
double precision norm,scale 
double complex alpha 
if (cdabs(ca) .ne. 0.0d0) go to 10 
c = 0.0d0 
s = (1.0d0,0.0d0) 
ca = cb 
go to 20 
10 continue 
scale = cdabs(ca) + cdabs(cb) 
norm = scale*dsqrt((cdabs(ca/dcmplx(scale,0.0d0)))**2 + 
* (cdabs(cb/dcmplx(scale,0.0d0)))**2) 
alpha = ca /cdabs(ca) 
c = cdabs(ca) / norm 
s = alpha * dconjg(cb) / norm 
ca = alpha * norm 
20 continue 
return 
 end
![]()  | 
				zrotg(l) | ![]()  |