1: *> \brief \b ZTPTTR copies a triangular matrix from the standard packed format (TP) to the standard full format (TR).
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: *> \htmlonly
9: *> Download ZTPTTR + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ztpttr.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ztpttr.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ztpttr.f">
15: *> [TXT]</a>
16: *> \endhtmlonly
17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE ZTPTTR( UPLO, N, AP, A, LDA, 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: *> ZTPTTR copies a triangular matrix A from standard packed format (TP)
38: *> to standard full format (TR).
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 matrix A. N >= 0.
55: *> \endverbatim
56: *>
57: *> \param[in] AP
58: *> \verbatim
59: *> AP is COMPLEX*16 array, dimension ( N*(N+1)/2 ),
60: *> On entry, the upper or lower triangular matrix A, packed
61: *> columnwise in a linear array. The j-th column of A is stored
62: *> in the array AP as follows:
63: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
64: *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
65: *> \endverbatim
66: *>
67: *> \param[out] A
68: *> \verbatim
69: *> A is COMPLEX*16 array, dimension ( LDA, N )
70: *> On exit, the triangular matrix A. If UPLO = 'U', the leading
71: *> N-by-N upper triangular part of A contains the upper
72: *> triangular part of the matrix A, and the strictly lower
73: *> triangular part of A is not referenced. If UPLO = 'L', the
74: *> leading N-by-N lower triangular part of A contains the lower
75: *> triangular part of the matrix A, and the strictly upper
76: *> triangular part of A is not referenced.
77: *> \endverbatim
78: *>
79: *> \param[in] LDA
80: *> \verbatim
81: *> LDA is INTEGER
82: *> The leading dimension of the array A. LDA >= max(1,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.
99: *
100: *> \ingroup complex16OTHERcomputational
101: *
102: * =====================================================================
103: SUBROUTINE ZTPTTR( UPLO, N, AP, A, LDA, INFO )
104: *
105: * -- LAPACK computational routine --
106: * -- LAPACK is a software package provided by Univ. of Tennessee, --
107: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
108: *
109: * .. Scalar Arguments ..
110: CHARACTER UPLO
111: INTEGER INFO, N, LDA
112: * ..
113: * .. Array Arguments ..
114: COMPLEX*16 A( LDA, * ), AP( * )
115: * ..
116: *
117: * =====================================================================
118: *
119: * .. Parameters ..
120: * ..
121: * .. Local Scalars ..
122: LOGICAL LOWER
123: INTEGER I, J, K
124: * ..
125: * .. External Functions ..
126: LOGICAL LSAME
127: EXTERNAL LSAME
128: * ..
129: * .. External Subroutines ..
130: EXTERNAL XERBLA
131: * ..
132: * .. Executable Statements ..
133: *
134: * Test the input parameters.
135: *
136: INFO = 0
137: LOWER = LSAME( UPLO, 'L' )
138: IF( .NOT.LOWER .AND. .NOT.LSAME( UPLO, 'U' ) ) THEN
139: INFO = -1
140: ELSE IF( N.LT.0 ) THEN
141: INFO = -2
142: ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
143: INFO = -5
144: END IF
145: IF( INFO.NE.0 ) THEN
146: CALL XERBLA( 'ZTPTTR', -INFO )
147: RETURN
148: END IF
149: *
150: IF( LOWER ) THEN
151: K = 0
152: DO J = 1, N
153: DO I = J, N
154: K = K + 1
155: A( I, J ) = AP( K )
156: END DO
157: END DO
158: ELSE
159: K = 0
160: DO J = 1, N
161: DO I = 1, J
162: K = K + 1
163: A( I, J ) = AP( K )
164: END DO
165: END DO
166: END IF
167: *
168: *
169: RETURN
170: *
171: * End of ZTPTTR
172: *
173: END
CVSweb interface <joel.bertrand@systella.fr>