Annotation of rpl/lapack/lapack/dlar2v.f, revision 1.8
1.8 ! bertrand 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: * =====================================================================
1.1 bertrand 111: SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
112: *
1.8 ! bertrand 113: * -- LAPACK auxiliary routine (version 3.4.0) --
1.1 bertrand 114: * -- LAPACK is a software package provided by Univ. of Tennessee, --
115: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.8 ! bertrand 116: * November 2011
1.1 bertrand 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>