ZROTG(3) construct givens plane rotation

SYNOPSIS

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

PURPOSE