LAPACK 3.11.0 LAPACK: Linear Algebra PACKage
Searching...
No Matches

◆ dlat2s()

 subroutine dlat2s ( character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, real, dimension( ldsa, * ) SA, integer LDSA, integer INFO )

DLAT2S converts a double-precision triangular matrix to a single-precision triangular matrix.

Purpose:
DLAT2S converts a DOUBLE PRECISION triangular matrix, SA, to a SINGLE
PRECISION triangular matrix, A.

RMAX is the overflow for the SINGLE PRECISION arithmetic
DLAS2S 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 DOUBLE PRECISION 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 REAL 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.

Definition at line 110 of file dlat2s.f.

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