LAPACK  3.6.1
LAPACK: Linear Algebra PACKage
subroutine dlargv ( integer  N,
double precision, dimension( * )  X,
integer  INCX,
double precision, dimension( * )  Y,
integer  INCY,
double precision, dimension( * )  C,
integer  INCC 
)

DLARGV generates a vector of plane rotations with real cosines and real sines.

Download DLARGV + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 DLARGV generates a vector of real plane rotations, determined by
 elements of the real vectors x and y. For i = 1,2,...,n

    (  c(i)  s(i) ) ( x(i) ) = ( a(i) )
    ( -s(i)  c(i) ) ( y(i) ) = (   0  )
Parameters
[in]N
          N is INTEGER
          The number of plane rotations to be generated.
[in,out]X
          X is DOUBLE PRECISION array,
                         dimension (1+(N-1)*INCX)
          On entry, the vector x.
          On exit, x(i) is overwritten by a(i), for i = 1,...,n.
[in]INCX
          INCX is INTEGER
          The increment between elements of X. INCX > 0.
[in,out]Y
          Y is DOUBLE PRECISION array,
                         dimension (1+(N-1)*INCY)
          On entry, the vector y.
          On exit, the sines of the plane rotations.
[in]INCY
          INCY is INTEGER
          The increment between elements of Y. INCY > 0.
[out]C
          C is DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
          The cosines of the plane rotations.
[in]INCC
          INCC is INTEGER
          The increment between elements of C. INCC > 0.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
September 2012

Definition at line 106 of file dlargv.f.

106 *
107 * -- LAPACK auxiliary routine (version 3.4.2) --
108 * -- LAPACK is a software package provided by Univ. of Tennessee, --
109 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
110 * September 2012
111 *
112 * .. Scalar Arguments ..
113  INTEGER incc, incx, incy, n
114 * ..
115 * .. Array Arguments ..
116  DOUBLE PRECISION c( * ), x( * ), y( * )
117 * ..
118 *
119 * =====================================================================
120 *
121 * .. Parameters ..
122  DOUBLE PRECISION zero, one
123  parameter ( zero = 0.0d+0, one = 1.0d+0 )
124 * ..
125 * .. Local Scalars ..
126  INTEGER i, ic, ix, iy
127  DOUBLE PRECISION f, g, t, tt
128 * ..
129 * .. Intrinsic Functions ..
130  INTRINSIC abs, sqrt
131 * ..
132 * .. Executable Statements ..
133 *
134  ix = 1
135  iy = 1
136  ic = 1
137  DO 10 i = 1, n
138  f = x( ix )
139  g = y( iy )
140  IF( g.EQ.zero ) THEN
141  c( ic ) = one
142  ELSE IF( f.EQ.zero ) THEN
143  c( ic ) = zero
144  y( iy ) = one
145  x( ix ) = g
146  ELSE IF( abs( f ).GT.abs( g ) ) THEN
147  t = g / f
148  tt = sqrt( one+t*t )
149  c( ic ) = one / tt
150  y( iy ) = t*c( ic )
151  x( ix ) = f*tt
152  ELSE
153  t = f / g
154  tt = sqrt( one+t*t )
155  y( iy ) = one / tt
156  c( ic ) = t*y( iy )
157  x( ix ) = g*tt
158  END IF
159  ic = ic + incc
160  iy = iy + incy
161  ix = ix + incx
162  10 CONTINUE
163  RETURN
164 *
165 * End of DLARGV
166 *

Here is the caller graph for this function: