1: *> \brief \b DLAR2V
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: *> \date November 2011
107: *
108: *> \ingroup doubleOTHERauxiliary
109: *
110: * =====================================================================
111: SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
112: *
113: * -- LAPACK auxiliary routine (version 3.4.0) --
114: * -- LAPACK is a software package provided by Univ. of Tennessee, --
115: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
116: * November 2011
117: *
118: * .. Scalar Arguments ..
119: INTEGER INCC, INCX, N
120: * ..
121: * .. Array Arguments ..
122: DOUBLE PRECISION C( * ), S( * ), X( * ), Y( * ), Z( * )
123: * ..
124: *
125: * =====================================================================
126: *
127: * .. Local Scalars ..
128: INTEGER I, IC, IX
129: DOUBLE PRECISION CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI
130: * ..
131: * .. Executable Statements ..
132: *
133: IX = 1
134: IC = 1
135: DO 10 I = 1, N
136: XI = X( IX )
137: YI = Y( IX )
138: ZI = Z( IX )
139: CI = C( IC )
140: SI = S( IC )
141: T1 = SI*ZI
142: T2 = CI*ZI
143: T3 = T2 - SI*XI
144: T4 = T2 + SI*YI
145: T5 = CI*XI + T1
146: T6 = CI*YI - T1
147: X( IX ) = CI*T5 + SI*T4
148: Y( IX ) = CI*T6 - SI*T3
149: Z( IX ) = CI*T4 - SI*T5
150: IX = IX + INCX
151: IC = IC + INCC
152: 10 CONTINUE
153: *
154: * End of DLAR2V
155: *
156: RETURN
157: END
CVSweb interface <joel.bertrand@systella.fr>