Annotation of rpl/lapack/lapack/dlaset.f, revision 1.8
1.8 ! bertrand 1: *> \brief \b DLASET
! 2: *
! 3: * =========== DOCUMENTATION ===========
! 4: *
! 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
! 7: *
! 8: *> \htmlonly
! 9: *> Download DLASET + dependencies
! 10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaset.f">
! 11: *> [TGZ]</a>
! 12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaset.f">
! 13: *> [ZIP]</a>
! 14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaset.f">
! 15: *> [TXT]</a>
! 16: *> \endhtmlonly
! 17: *
! 18: * Definition:
! 19: * ===========
! 20: *
! 21: * SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA )
! 22: *
! 23: * .. Scalar Arguments ..
! 24: * CHARACTER UPLO
! 25: * INTEGER LDA, M, N
! 26: * DOUBLE PRECISION ALPHA, BETA
! 27: * ..
! 28: * .. Array Arguments ..
! 29: * DOUBLE PRECISION A( LDA, * )
! 30: * ..
! 31: *
! 32: *
! 33: *> \par Purpose:
! 34: * =============
! 35: *>
! 36: *> \verbatim
! 37: *>
! 38: *> DLASET initializes an m-by-n matrix A to BETA on the diagonal and
! 39: *> ALPHA on the offdiagonals.
! 40: *> \endverbatim
! 41: *
! 42: * Arguments:
! 43: * ==========
! 44: *
! 45: *> \param[in] UPLO
! 46: *> \verbatim
! 47: *> UPLO is CHARACTER*1
! 48: *> Specifies the part of the matrix A to be set.
! 49: *> = 'U': Upper triangular part is set; the strictly lower
! 50: *> triangular part of A is not changed.
! 51: *> = 'L': Lower triangular part is set; the strictly upper
! 52: *> triangular part of A is not changed.
! 53: *> Otherwise: All of the matrix A is set.
! 54: *> \endverbatim
! 55: *>
! 56: *> \param[in] M
! 57: *> \verbatim
! 58: *> M is INTEGER
! 59: *> The number of rows of the matrix A. M >= 0.
! 60: *> \endverbatim
! 61: *>
! 62: *> \param[in] N
! 63: *> \verbatim
! 64: *> N is INTEGER
! 65: *> The number of columns of the matrix A. N >= 0.
! 66: *> \endverbatim
! 67: *>
! 68: *> \param[in] ALPHA
! 69: *> \verbatim
! 70: *> ALPHA is DOUBLE PRECISION
! 71: *> The constant to which the offdiagonal elements are to be set.
! 72: *> \endverbatim
! 73: *>
! 74: *> \param[in] BETA
! 75: *> \verbatim
! 76: *> BETA is DOUBLE PRECISION
! 77: *> The constant to which the diagonal elements are to be set.
! 78: *> \endverbatim
! 79: *>
! 80: *> \param[in,out] A
! 81: *> \verbatim
! 82: *> A is DOUBLE PRECISION array, dimension (LDA,N)
! 83: *> On exit, the leading m-by-n submatrix of A is set as follows:
! 84: *>
! 85: *> if UPLO = 'U', A(i,j) = ALPHA, 1<=i<=j-1, 1<=j<=n,
! 86: *> if UPLO = 'L', A(i,j) = ALPHA, j+1<=i<=m, 1<=j<=n,
! 87: *> otherwise, A(i,j) = ALPHA, 1<=i<=m, 1<=j<=n, i.ne.j,
! 88: *>
! 89: *> and, for all UPLO, A(i,i) = BETA, 1<=i<=min(m,n).
! 90: *> \endverbatim
! 91: *>
! 92: *> \param[in] LDA
! 93: *> \verbatim
! 94: *> LDA is INTEGER
! 95: *> The leading dimension of the array A. LDA >= max(1,M).
! 96: *> \endverbatim
! 97: *
! 98: * Authors:
! 99: * ========
! 100: *
! 101: *> \author Univ. of Tennessee
! 102: *> \author Univ. of California Berkeley
! 103: *> \author Univ. of Colorado Denver
! 104: *> \author NAG Ltd.
! 105: *
! 106: *> \date November 2011
! 107: *
! 108: *> \ingroup auxOTHERauxiliary
! 109: *
! 110: * =====================================================================
1.1 bertrand 111: SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA )
112: *
1.8 ! bertrand 113: * -- LAPACK auxiliary routine (version 3.4.0) --
1.1 bertrand 114: * -- LAPACK is a software package provided by Univ. of Tennessee, --
115: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.8 ! bertrand 116: * November 2011
1.1 bertrand 117: *
118: * .. Scalar Arguments ..
119: CHARACTER UPLO
120: INTEGER LDA, M, N
121: DOUBLE PRECISION ALPHA, BETA
122: * ..
123: * .. Array Arguments ..
124: DOUBLE PRECISION A( LDA, * )
125: * ..
126: *
127: * =====================================================================
128: *
129: * .. Local Scalars ..
130: INTEGER I, J
131: * ..
132: * .. External Functions ..
133: LOGICAL LSAME
134: EXTERNAL LSAME
135: * ..
136: * .. Intrinsic Functions ..
137: INTRINSIC MIN
138: * ..
139: * .. Executable Statements ..
140: *
141: IF( LSAME( UPLO, 'U' ) ) THEN
142: *
143: * Set the strictly upper triangular or trapezoidal part of the
144: * array to ALPHA.
145: *
146: DO 20 J = 2, N
147: DO 10 I = 1, MIN( J-1, M )
148: A( I, J ) = ALPHA
149: 10 CONTINUE
150: 20 CONTINUE
151: *
152: ELSE IF( LSAME( UPLO, 'L' ) ) THEN
153: *
154: * Set the strictly lower triangular or trapezoidal part of the
155: * array to ALPHA.
156: *
157: DO 40 J = 1, MIN( M, N )
158: DO 30 I = J + 1, M
159: A( I, J ) = ALPHA
160: 30 CONTINUE
161: 40 CONTINUE
162: *
163: ELSE
164: *
165: * Set the leading m-by-n submatrix to ALPHA.
166: *
167: DO 60 J = 1, N
168: DO 50 I = 1, M
169: A( I, J ) = ALPHA
170: 50 CONTINUE
171: 60 CONTINUE
172: END IF
173: *
174: * Set the first min(M,N) diagonal elements to BETA.
175: *
176: DO 70 I = 1, MIN( M, N )
177: A( I, I ) = BETA
178: 70 CONTINUE
179: *
180: RETURN
181: *
182: * End of DLASET
183: *
184: END
CVSweb interface <joel.bertrand@systella.fr>