LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ zlat2c()

subroutine zlat2c ( character uplo,
integer n,
complex*16, dimension( lda, * ) a,
integer lda,
complex, dimension( ldsa, * ) sa,
integer ldsa,
integer info )

ZLAT2C converts a double complex triangular matrix to a complex triangular matrix.

Download ZLAT2C + dependencies [TGZ] [ZIP] [TXT]

Purpose:
!>
!> ZLAT2C converts a COMPLEX*16 triangular matrix, SA, to a COMPLEX
!> triangular matrix, A.
!>
!> RMAX is the overflow for the SINGLE PRECISION arithmetic
!> ZLAT2C checks that all the entries of A are between -RMAX and
!> RMAX. If not the conversion is aborted and a flag is raised.
!>
!> This is an auxiliary routine so there is no argument checking.
!> 
Parameters
[in]UPLO
!>          UPLO is CHARACTER*1
!>          = 'U':  A is upper triangular;
!>          = 'L':  A is lower triangular.
!> 
[in]N
!>          N is INTEGER
!>          The number of rows and columns of the matrix A.  N >= 0.
!> 
[in]A
!>          A is COMPLEX*16 array, dimension (LDA,N)
!>          On entry, the N-by-N triangular coefficient matrix A.
!> 
[in]LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!> 
[out]SA
!>          SA is COMPLEX array, dimension (LDSA,N)
!>          Only the UPLO part of SA is referenced.  On exit, if INFO=0,
!>          the N-by-N coefficient matrix SA; if INFO>0, the content of
!>          the UPLO part of SA is unspecified.
!> 
[in]LDSA
!>          LDSA is INTEGER
!>          The leading dimension of the array SA.  LDSA >= max(1,M).
!> 
[out]INFO
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          = 1:  an entry of the matrix A is greater than the SINGLE
!>                PRECISION overflow threshold, in this case, the content
!>                of the UPLO part of SA in exit is unspecified.
!> 
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 108 of file zlat2c.f.

109*
110* -- LAPACK auxiliary routine --
111* -- LAPACK is a software package provided by Univ. of Tennessee, --
112* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
113*
114* .. Scalar Arguments ..
115 CHARACTER UPLO
116 INTEGER INFO, LDA, LDSA, N
117* ..
118* .. Array Arguments ..
119 COMPLEX SA( LDSA, * )
120 COMPLEX*16 A( LDA, * )
121* ..
122*
123* =====================================================================
124*
125* .. Local Scalars ..
126 INTEGER I, J
127 DOUBLE PRECISION RMAX
128 LOGICAL UPPER
129* ..
130* .. Intrinsic Functions ..
131 INTRINSIC dble, dimag, cmplx
132* ..
133* .. External Functions ..
134 REAL SLAMCH
135 LOGICAL LSAME
136 EXTERNAL slamch, lsame
137* ..
138* .. Executable Statements ..
139*
140 rmax = slamch( 'O' )
141 upper = lsame( uplo, 'U' )
142 IF( upper ) THEN
143 DO 20 j = 1, n
144 DO 10 i = 1, j
145 IF( ( dble( a( i, j ) ).LT.-rmax ) .OR.
146 $ ( dble( a( i, j ) ).GT.rmax ) .OR.
147 $ ( dimag( a( i, j ) ).LT.-rmax ) .OR.
148 $ ( dimag( a( i, j ) ).GT.rmax ) ) THEN
149 info = 1
150 GO TO 50
151 END IF
152 sa( i, j ) = cmplx( a( i, j ) )
153 10 CONTINUE
154 20 CONTINUE
155 ELSE
156 DO 40 j = 1, n
157 DO 30 i = j, n
158 IF( ( dble( a( i, j ) ).LT.-rmax ) .OR.
159 $ ( dble( a( i, j ) ).GT.rmax ) .OR.
160 $ ( dimag( a( i, j ) ).LT.-rmax ) .OR.
161 $ ( dimag( a( i, j ) ).GT.rmax ) ) THEN
162 info = 1
163 GO TO 50
164 END IF
165 sa( i, j ) = cmplx( a( i, j ) )
166 30 CONTINUE
167 40 CONTINUE
168 END IF
169 50 CONTINUE
170*
171 RETURN
172*
173* End of ZLAT2C
174*
real function slamch(cmach)
SLAMCH
Definition slamch.f:68
logical function lsame(ca, cb)
LSAME
Definition lsame.f:48
Here is the caller graph for this function: