CLARGV(3) generates a vector of complex plane rotations with real cosines, determined by elements of the complex vectors x and y

SYNOPSIS

SUBROUTINE CLARGV(
N, X, INCX, Y, INCY, C, INCC )

    
INTEGER INCC, INCX, INCY, N

    
REAL C( * )

    
COMPLEX X( * ), Y( * )

PURPOSE

CLARGV generates a vector of complex plane rotations with real cosines, determined by elements of the complex vectors x and y. For i = 1,2,...,n

   (        c(i)   s(i) ) ( x(i) ) = ( r(i) )

   ( -conjg(s(i))  c(i) ) ( y(i) ) = (   0  )

   where c(i)**2 + ABS(s(i))**2 = 1
The following conventions are used (these are the same as in CLARTG, but differ from the BLAS1 routine CROTG):

   If y(i)=0, then c(i)=1 and s(i)=0.

   If x(i)=0, then c(i)=0 and s(i) is chosen so that r(i) is real.

ARGUMENTS

N (input) INTEGER
The number of plane rotations to be generated.
X (input/output) COMPLEX array, dimension (1+(N-1)*INCX)
On entry, the vector x. On exit, x(i) is overwritten by r(i), for i = 1,...,n.
INCX (input) INTEGER
The increment between elements of X. INCX > 0.
Y (input/output) COMPLEX array, dimension (1+(N-1)*INCY)
On entry, the vector y. On exit, the sines of the plane rotations.
INCY (input) INTEGER
The increment between elements of Y. INCY > 0.
C (output) REAL array, dimension (1+(N-1)*INCC)
The cosines of the plane rotations.
INCC (input) INTEGER
The increment between elements of C. INCC > 0.

FURTHER DETAILS

6-6-96 - Modified with a new algorithm by W. Kahan and J. Demmel This version has a few statements commented out for thread safety (machine parameters are computed on each entry). 10 feb 03, SJH.