1: SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )
2: *
3: * -- LAPACK PROTOTYPE auxiliary routine (version 3.1.2) --
4: * -- LAPACK is a software package provided by Univ. of Tennessee, --
5: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6: * August 2007
7: *
8: * ..
9: * .. Scalar Arguments ..
10: INTEGER INFO, LDA, LDSA, M, N
11: * ..
12: * .. Array Arguments ..
13: REAL SA( LDSA, * )
14: DOUBLE PRECISION A( LDA, * )
15: * ..
16: *
17: * Purpose
18: * =======
19: *
20: * DLAG2S converts a DOUBLE PRECISION matrix, SA, to a SINGLE
21: * PRECISION matrix, A.
22: *
23: * RMAX is the overflow for the SINGLE PRECISION arithmetic
24: * DLAG2S checks that all the entries of A are between -RMAX and
25: * RMAX. If not the convertion is aborted and a flag is raised.
26: *
27: * This is an auxiliary routine so there is no argument checking.
28: *
29: * Arguments
30: * =========
31: *
32: * M (input) INTEGER
33: * The number of lines of the matrix A. M >= 0.
34: *
35: * N (input) INTEGER
36: * The number of columns of the matrix A. N >= 0.
37: *
38: * A (input) DOUBLE PRECISION array, dimension (LDA,N)
39: * On entry, the M-by-N coefficient matrix A.
40: *
41: * LDA (input) INTEGER
42: * The leading dimension of the array A. LDA >= max(1,M).
43: *
44: * SA (output) REAL array, dimension (LDSA,N)
45: * On exit, if INFO=0, the M-by-N coefficient matrix SA; if
46: * INFO>0, the content of SA is unspecified.
47: *
48: * LDSA (input) INTEGER
49: * The leading dimension of the array SA. LDSA >= max(1,M).
50: *
51: * INFO (output) INTEGER
52: * = 0: successful exit.
53: * = 1: an entry of the matrix A is greater than the SINGLE
54: * PRECISION overflow threshold, in this case, the content
55: * of SA in exit is unspecified.
56: *
57: * =========
58: *
59: * .. Local Scalars ..
60: INTEGER I, J
61: DOUBLE PRECISION RMAX
62: * ..
63: * .. External Functions ..
64: REAL SLAMCH
65: EXTERNAL SLAMCH
66: * ..
67: * .. Executable Statements ..
68: *
69: RMAX = SLAMCH( 'O' )
70: DO 20 J = 1, N
71: DO 10 I = 1, M
72: IF( ( A( I, J ).LT.-RMAX ) .OR. ( A( I, J ).GT.RMAX ) ) THEN
73: INFO = 1
74: GO TO 30
75: END IF
76: SA( I, J ) = A( I, J )
77: 10 CONTINUE
78: 20 CONTINUE
79: INFO = 0
80: 30 CONTINUE
81: RETURN
82: *
83: * End of DLAG2S
84: *
85: END
CVSweb interface <joel.bertrand@systella.fr>