# ?largv

Generates a vector of plane rotations with real cosines and real/complex sines.

## Syntax

call slargv( n, x, incx, y, incy, c, incc )

call dlargv( n, x, incx, y, incy, c, incc )

call clargv( n, x, incx, y, incy, c, incc )

call zlargv( n, x, incx, y, incy, c, incc )

## Description

The routine generates a vector of real/complex plane rotations with real cosines, determined by elements of the real/complex vectors x and y.

For slargv/dlargv:

For clargv/zlargv:

where `c(i)2 + abs(s(i))2 = 1` and the following conventions are used (these are the same as in clartg/zlartg but differ from the BLAS Level 1 routine crotg/zrotg):

If `yi = 0`, then `c(i) = 1` and `s(i) = 0`;

If `xi = 0`, then `c(i) = 0` and s(i) is chosen so that ri is real.

## Input Parameters

n

  INTEGER. The number of plane rotations to be generated.

x, y

  REAL for slargv

  DOUBLE PRECISION for dlargv

  COMPLEX for clargv

  COMPLEX*16 for zlargv

  Arrays, DIMENSION (1+(n-1)*incx) and (1+(n-1)*incy), respectively. On entry, the vectors x and y.

incx

  INTEGER. The increment between elements of x.

  `incx > 0`.

incy

  INTEGER. The increment between elements of y.

  `incy > 0`.

incc

  INTEGER. The increment between elements of the output array c. `incc > 0`.

## Output Parameters

x

  On exit, x(i) is overwritten by ai (for real flavors), or by ri (for complex flavors), for `i = 1,...,n`.

y

  On exit, the sines s(i) of the plane rotations.

c

  REAL for slargv/clargv

  DOUBLE PRECISION for dlargv/zlargv

  Array, DIMENSION (1+(n-1)*incc). The cosines of the plane rotations.

Parent topic: Auxiliary Routines