LAPACK  3.10.0
LAPACK: Linear Algebra PACKage
ctpttr.f
Go to the documentation of this file.
1 *> \brief \b CTPTTR 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 CTPTTR + dependencies
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ctpttr.f">
11 *> [TGZ]</a>
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ctpttr.f">
13 *> [ZIP]</a>
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ctpttr.f">
15 *> [TXT]</a>
16 *> \endhtmlonly
17 *
18 * Definition:
19 * ===========
20 *
21 * SUBROUTINE CTPTTR( UPLO, N, AP, A, LDA, INFO )
22 *
23 * .. Scalar Arguments ..
24 * CHARACTER UPLO
25 * INTEGER INFO, N, LDA
26 * ..
27 * .. Array Arguments ..
28 * COMPLEX A( LDA, * ), AP( * )
29 * ..
30 *
31 *
32 *> \par Purpose:
33 * =============
34 *>
35 *> \verbatim
36 *>
37 *> CTPTTR 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 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 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 complexOTHERcomputational
101 *
102 * =====================================================================
103  SUBROUTINE ctpttr( 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 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( 'CTPTTR', -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 CTPTTR
172 *
173  END
subroutine xerbla(SRNAME, INFO)
XERBLA
Definition: xerbla.f:60
subroutine ctpttr(UPLO, N, AP, A, LDA, INFO)
CTPTTR copies a triangular matrix from the standard packed format (TP) to the standard full format (T...
Definition: ctpttr.f:104