1 SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )
2 *
3 * -- LAPACK PROTOTYPE auxiliary routine (version 3.3.1) --
4 * -- LAPACK is a software package provided by Univ. of Tennessee, --
5 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6 * -- April 2011 --
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
2 *
3 * -- LAPACK PROTOTYPE auxiliary routine (version 3.3.1) --
4 * -- LAPACK is a software package provided by Univ. of Tennessee, --
5 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6 * -- April 2011 --
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