Annotation of rpl/lapack/lapack/ztrttp.f, revision 1.6
1.6 ! bertrand 1: *> \brief \b ZTRTTP
! 2: *
! 3: * =========== DOCUMENTATION ===========
! 4: *
! 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
! 7: *
! 8: *> \htmlonly
! 9: *> Download ZTRTTP + dependencies
! 10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ztrttp.f">
! 11: *> [TGZ]</a>
! 12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ztrttp.f">
! 13: *> [ZIP]</a>
! 14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztrttp.f">
! 15: *> [TXT]</a>
! 16: *> \endhtmlonly
! 17: *
! 18: * Definition:
! 19: * ===========
! 20: *
! 21: * SUBROUTINE ZTRTTP( UPLO, N, A, LDA, AP, INFO )
! 22: *
! 23: * .. Scalar Arguments ..
! 24: * CHARACTER UPLO
! 25: * INTEGER INFO, N, LDA
! 26: * ..
! 27: * .. Array Arguments ..
! 28: * COMPLEX*16 A( LDA, * ), AP( * )
! 29: * ..
! 30: *
! 31: *
! 32: *> \par Purpose:
! 33: * =============
! 34: *>
! 35: *> \verbatim
! 36: *>
! 37: *> ZTRTTP copies a triangular matrix A from full format (TR) to standard
! 38: *> packed format (TP).
! 39: *> \endverbatim
! 40: *
! 41: * Arguments:
! 42: * ==========
! 43: *
! 44: *> \param[in] UPLO
! 45: *> \verbatim
! 46: *> UPLO is CHARACTER*1
! 47: *> = 'U': A is upper triangular;
! 48: *> = 'L': A is lower triangular.
! 49: *> \endverbatim
! 50: *>
! 51: *> \param[in] N
! 52: *> \verbatim
! 53: *> N is INTEGER
! 54: *> The order of the matrices AP and A. N >= 0.
! 55: *> \endverbatim
! 56: *>
! 57: *> \param[in] A
! 58: *> \verbatim
! 59: *> A is COMPLEX*16 array, dimension (LDA,N)
! 60: *> On entry, the triangular matrix A. If UPLO = 'U', the leading
! 61: *> N-by-N upper triangular part of A contains the upper
! 62: *> triangular part of the matrix A, and the strictly lower
! 63: *> triangular part of A is not referenced. If UPLO = 'L', the
! 64: *> leading N-by-N lower triangular part of A contains the lower
! 65: *> triangular part of the matrix A, and the strictly upper
! 66: *> triangular part of A is not referenced.
! 67: *> \endverbatim
! 68: *>
! 69: *> \param[in] LDA
! 70: *> \verbatim
! 71: *> LDA is INTEGER
! 72: *> The leading dimension of the array A. LDA >= max(1,N).
! 73: *> \endverbatim
! 74: *>
! 75: *> \param[out] AP
! 76: *> \verbatim
! 77: *> AP is COMPLEX*16 array, dimension ( N*(N+1)/2 ),
! 78: *> On exit, the upper or lower triangular matrix A, packed
! 79: *> columnwise in a linear array. The j-th column of A is stored
! 80: *> in the array AP as follows:
! 81: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
! 82: *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
! 83: *> \endverbatim
! 84: *>
! 85: *> \param[out] INFO
! 86: *> \verbatim
! 87: *> INFO is INTEGER
! 88: *> = 0: successful exit
! 89: *> < 0: if INFO = -i, the i-th argument had an illegal value
! 90: *> \endverbatim
! 91: *
! 92: * Authors:
! 93: * ========
! 94: *
! 95: *> \author Univ. of Tennessee
! 96: *> \author Univ. of California Berkeley
! 97: *> \author Univ. of Colorado Denver
! 98: *> \author NAG Ltd.
1.1 bertrand 99: *
1.6 ! bertrand 100: *> \date November 2011
1.1 bertrand 101: *
1.6 ! bertrand 102: *> \ingroup complex16OTHERcomputational
1.1 bertrand 103: *
1.6 ! bertrand 104: * =====================================================================
! 105: SUBROUTINE ZTRTTP( UPLO, N, A, LDA, AP, INFO )
! 106: *
! 107: * -- LAPACK computational routine (version 3.4.0) --
1.1 bertrand 108: * -- LAPACK is a software package provided by Univ. of Tennessee, --
109: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.6 ! bertrand 110: * November 2011
1.1 bertrand 111: *
112: * .. Scalar Arguments ..
113: CHARACTER UPLO
114: INTEGER INFO, N, LDA
115: * ..
116: * .. Array Arguments ..
117: COMPLEX*16 A( LDA, * ), AP( * )
118: * ..
119: *
120: * =====================================================================
121: *
122: * .. Parameters ..
123: * ..
124: * .. Local Scalars ..
125: LOGICAL LOWER
126: INTEGER I, J, K
127: * ..
128: * .. External Functions ..
129: LOGICAL LSAME
130: EXTERNAL LSAME
131: * ..
132: * .. External Subroutines ..
133: EXTERNAL XERBLA
134: * ..
135: * .. Executable Statements ..
136: *
137: * Test the input parameters.
138: *
139: INFO = 0
140: LOWER = LSAME( UPLO, 'L' )
141: IF( .NOT.LOWER .AND. .NOT.LSAME( UPLO, 'U' ) ) THEN
142: INFO = -1
143: ELSE IF( N.LT.0 ) THEN
144: INFO = -2
145: ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
146: INFO = -4
147: END IF
148: IF( INFO.NE.0 ) THEN
149: CALL XERBLA( 'ZTRTTP', -INFO )
150: RETURN
151: END IF
152: *
153: IF( LOWER ) THEN
154: K = 0
155: DO J = 1, N
156: DO I = J, N
157: K = K + 1
158: AP( K ) = A( I, J )
159: END DO
160: END DO
161: ELSE
162: K = 0
163: DO J = 1, N
164: DO I = 1, J
165: K = K + 1
166: AP( K ) = A( I, J )
167: END DO
168: END DO
169: END IF
170: *
171: *
172: RETURN
173: *
174: * End of ZTRTTP
175: *
176: END
CVSweb interface <joel.bertrand@systella.fr>