01:       SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
02: *
03: *  -- LAPACK auxiliary routine (version 3.2) --
04: *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
05: *     November 2006
06: *
07: *     .. Scalar Arguments ..
08:       INTEGER            INCC, INCX, N
09: *     ..
10: *     .. Array Arguments ..
11:       DOUBLE PRECISION   C( * ), S( * ), X( * ), Y( * ), Z( * )
12: *     ..
13: *
14: *  Purpose
15: *  =======
16: *
17: *  DLAR2V applies a vector of real plane rotations from both sides to
18: *  a sequence of 2-by-2 real symmetric matrices, defined by the elements
19: *  of the vectors x, y and z. For i = 1,2,...,n
20: *
21: *     ( x(i)  z(i) ) := (  c(i)  s(i) ) ( x(i)  z(i) ) ( c(i) -s(i) )
22: *     ( z(i)  y(i) )    ( -s(i)  c(i) ) ( z(i)  y(i) ) ( s(i)  c(i) )
23: *
24: *  Arguments
25: *  =========
26: *
27: *  N       (input) INTEGER
28: *          The number of plane rotations to be applied.
29: *
30: *  X       (input/output) DOUBLE PRECISION array,
31: *                         dimension (1+(N-1)*INCX)
32: *          The vector x.
33: *
34: *  Y       (input/output) DOUBLE PRECISION array,
35: *                         dimension (1+(N-1)*INCX)
36: *          The vector y.
37: *
38: *  Z       (input/output) DOUBLE PRECISION array,
39: *                         dimension (1+(N-1)*INCX)
40: *          The vector z.
41: *
42: *  INCX    (input) INTEGER
43: *          The increment between elements of X, Y and Z. INCX > 0.
44: *
45: *  C       (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
46: *          The cosines of the plane rotations.
47: *
48: *  S       (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
49: *          The sines of the plane rotations.
50: *
51: *  INCC    (input) INTEGER
52: *          The increment between elements of C and S. INCC > 0.
53: *
54: *  =====================================================================
55: *
56: *     .. Local Scalars ..
57:       INTEGER            I, IC, IX
58:       DOUBLE PRECISION   CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI
59: *     ..
60: *     .. Executable Statements ..
61: *
62:       IX = 1
63:       IC = 1
64:       DO 10 I = 1, N
65:          XI = X( IX )
66:          YI = Y( IX )
67:          ZI = Z( IX )
68:          CI = C( IC )
69:          SI = S( IC )
70:          T1 = SI*ZI
71:          T2 = CI*ZI
72:          T3 = T2 - SI*XI
73:          T4 = T2 + SI*YI
74:          T5 = CI*XI + T1
75:          T6 = CI*YI - T1
76:          X( IX ) = CI*T5 + SI*T4
77:          Y( IX ) = CI*T6 - SI*T3
78:          Z( IX ) = CI*T4 - SI*T5
79:          IX = IX + INCX
80:          IC = IC + INCC
81:    10 CONTINUE
82: *
83: *     End of DLAR2V
84: *
85:       RETURN
86:       END
87: