File:  [local] / rpl / lapack / lapack / dlag2s.f
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Fri Aug 6 15:32:26 2010 UTC (13 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Cohérence

    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>