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