1: *> \brief \b DLAR2V applies a vector of plane rotations with real cosines and real sines from both sides to a sequence of 2-by-2 symmetric/Hermitian matrices.
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: *> \htmlonly
9: *> Download DLAR2V + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlar2v.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlar2v.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlar2v.f">
15: *> [TXT]</a>
16: *> \endhtmlonly
17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
22: *
23: * .. Scalar Arguments ..
24: * INTEGER INCC, INCX, N
25: * ..
26: * .. Array Arguments ..
27: * DOUBLE PRECISION C( * ), S( * ), X( * ), Y( * ), Z( * )
28: * ..
29: *
30: *
31: *> \par Purpose:
32: * =============
33: *>
34: *> \verbatim
35: *>
36: *> DLAR2V applies a vector of real plane rotations from both sides to
37: *> a sequence of 2-by-2 real symmetric matrices, defined by the elements
38: *> of the vectors x, y and z. For i = 1,2,...,n
39: *>
40: *> ( x(i) z(i) ) := ( c(i) s(i) ) ( x(i) z(i) ) ( c(i) -s(i) )
41: *> ( z(i) y(i) ) ( -s(i) c(i) ) ( z(i) y(i) ) ( s(i) c(i) )
42: *> \endverbatim
43: *
44: * Arguments:
45: * ==========
46: *
47: *> \param[in] N
48: *> \verbatim
49: *> N is INTEGER
50: *> The number of plane rotations to be applied.
51: *> \endverbatim
52: *>
53: *> \param[in,out] X
54: *> \verbatim
55: *> X is DOUBLE PRECISION array,
56: *> dimension (1+(N-1)*INCX)
57: *> The vector x.
58: *> \endverbatim
59: *>
60: *> \param[in,out] Y
61: *> \verbatim
62: *> Y is DOUBLE PRECISION array,
63: *> dimension (1+(N-1)*INCX)
64: *> The vector y.
65: *> \endverbatim
66: *>
67: *> \param[in,out] Z
68: *> \verbatim
69: *> Z is DOUBLE PRECISION array,
70: *> dimension (1+(N-1)*INCX)
71: *> The vector z.
72: *> \endverbatim
73: *>
74: *> \param[in] INCX
75: *> \verbatim
76: *> INCX is INTEGER
77: *> The increment between elements of X, Y and Z. INCX > 0.
78: *> \endverbatim
79: *>
80: *> \param[in] C
81: *> \verbatim
82: *> C is DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
83: *> The cosines of the plane rotations.
84: *> \endverbatim
85: *>
86: *> \param[in] S
87: *> \verbatim
88: *> S is DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
89: *> The sines of the plane rotations.
90: *> \endverbatim
91: *>
92: *> \param[in] INCC
93: *> \verbatim
94: *> INCC is INTEGER
95: *> The increment between elements of C and S. INCC > 0.
96: *> \endverbatim
97: *
98: * Authors:
99: * ========
100: *
101: *> \author Univ. of Tennessee
102: *> \author Univ. of California Berkeley
103: *> \author Univ. of Colorado Denver
104: *> \author NAG Ltd.
105: *
106: *> \ingroup doubleOTHERauxiliary
107: *
108: * =====================================================================
109: SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
110: *
111: * -- LAPACK auxiliary routine --
112: * -- LAPACK is a software package provided by Univ. of Tennessee, --
113: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
114: *
115: * .. Scalar Arguments ..
116: INTEGER INCC, INCX, N
117: * ..
118: * .. Array Arguments ..
119: DOUBLE PRECISION C( * ), S( * ), X( * ), Y( * ), Z( * )
120: * ..
121: *
122: * =====================================================================
123: *
124: * .. Local Scalars ..
125: INTEGER I, IC, IX
126: DOUBLE PRECISION CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI
127: * ..
128: * .. Executable Statements ..
129: *
130: IX = 1
131: IC = 1
132: DO 10 I = 1, N
133: XI = X( IX )
134: YI = Y( IX )
135: ZI = Z( IX )
136: CI = C( IC )
137: SI = S( IC )
138: T1 = SI*ZI
139: T2 = CI*ZI
140: T3 = T2 - SI*XI
141: T4 = T2 + SI*YI
142: T5 = CI*XI + T1
143: T6 = CI*YI - T1
144: X( IX ) = CI*T5 + SI*T4
145: Y( IX ) = CI*T6 - SI*T3
146: Z( IX ) = CI*T4 - SI*T5
147: IX = IX + INCX
148: IC = IC + INCC
149: 10 CONTINUE
150: *
151: * End of DLAR2V
152: *
153: RETURN
154: END
CVSweb interface <joel.bertrand@systella.fr>