 LAPACK  3.10.0 LAPACK: Linear Algebra PACKage

◆ 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 * .. Executable Statements ..
138 *
139  rmax = slamch( 'O' )
140  upper = lsame( uplo, 'U' )
141  IF( upper ) THEN
142  DO 20 j = 1, n
143  DO 10 i = 1, j
144  IF( ( a( i, j ).LT.-rmax ) .OR. ( a( i, j ).GT.rmax ) )
145  \$ THEN
146  info = 1
147  GO TO 50
148  END IF
149  sa( i, j ) = a( i, j )
150  10 CONTINUE
151  20 CONTINUE
152  ELSE
153  DO 40 j = 1, n
154  DO 30 i = j, n
155  IF( ( a( i, j ).LT.-rmax ) .OR. ( a( i, j ).GT.rmax ) )
156  \$ THEN
157  info = 1
158  GO TO 50
159  END IF
160  sa( i, j ) = a( i, j )
161  30 CONTINUE
162  40 CONTINUE
163  END IF
164  50 CONTINUE
165 *
166  RETURN
167 *
168 * End of DLAT2S
169 *
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: