LAPACK  3.10.1
LAPACK: Linear Algebra PACKage
dlar2v.f
Go to the documentation of this file.
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
subroutine dlar2v(N, X, Y, Z, INCX, C, S, INCC)
DLAR2V applies a vector of plane rotations with real cosines and real sines from both sides to a sequ...
Definition: dlar2v.f:110