|
 |
 |
 |
MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm
csymm.fSection: LAPACK (3) Updated: Fri Nov 4 2016 Index NAMEcsymm.f - SYNOPSIS Functions/Subroutines subroutine CSYMM (SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC) CSYMM
Function/Subroutine Documentation subroutine CSYMM (character SIDE, character UPLO, integer M, integer N, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(ldb,*) B, integer LDB, complex BETA, complex, dimension(ldc,*) C, integer LDC)CSYMM Purpose: CSYMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.
Parameters: - SIDE
SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the symmetric matrix is to be referenced. UPLO = 'L' or 'l' Only the lower triangular part of the symmetric matrix is to be referenced. M
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero. N
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero. ALPHA
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha. A
A is COMPLEX array of DIMENSION ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. LDA
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ). B
B is COMPLEX array of DIMENSION ( LDB, n ). Before entry, the leading m by n part of the array B must contain the matrix B. LDB
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ). BETA
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input. C
C is COMPLEX array of DIMENSION ( LDC, n ). Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix. LDC
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
Author: - Univ. of Tennessee
Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd.
Date: - November 2011
Further Details: Level 3 Blas routine. -- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Definition at line 191 of file csymm.f. 191 *192 * -- Reference BLAS level3 routine (version 3.4.0) --193 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --194 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--195 * November 2011196 *197 * .. Scalar Arguments ..198 COMPLEX alpha,beta199 INTEGER lda,ldb,ldc,m,n200 CHARACTER side,uplo201 * ..202 * .. Array Arguments ..203 COMPLEX a(lda,*),b(ldb,*),c(ldc,*)204 * ..205 *206 * =====================================================================207 *208 * .. External Functions ..209 LOGICAL lsame210 EXTERNAL lsame211 * ..212 * .. External Subroutines ..213 EXTERNAL xerbla214 * ..215 * .. Intrinsic Functions ..216 INTRINSIC max217 * ..218 * .. Local Scalars ..219 COMPLEX temp1,temp2220 INTEGER i,info,j,k,nrowa221 LOGICAL upper222 * ..223 * .. Parameters ..224 COMPLEX one225 parameter(one= (1.0e+0,0.0e+0))226 COMPLEX zero227 parameter(zero= (0.0e+0,0.0e+0))228 * ..229 *230 * Set NROWA as the number of rows of A.231 *232 IF (lsame(side,'L')) THEN233 nrowa = m234 ELSE235 nrowa = n236 END IF237 upper = lsame(uplo,'U')238 *239 * Test the input parameters.240 *241 info = 0242 IF ((.NOT.lsame(side,'L')) .AND. (.NOT.lsame(side,'R'))) THEN243 info = 1244 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,'L'))) THEN245 info = 2246 ELSE IF (m.LT.0) THEN247 info = 3248 ELSE IF (n.LT.0) THEN249 info = 4250 ELSE IF (lda.LT.max(1,nrowa)) THEN251 info = 7252 ELSE IF (ldb.LT.max(1,m)) THEN253 info = 9254 ELSE IF (ldc.LT.max(1,m)) THEN255 info = 12256 END IF257 IF (info.NE.0) THEN258 CALL xerbla('CSYMM ',info)259 RETURN260 END IF261 *262 * Quick return if possible.263 *264 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.265 + ((alpha.EQ.zero).AND. (beta.EQ.one))) RETURN266 *267 * And when alpha.eq.zero.268 *269 IF (alpha.EQ.zero) THEN270 IF (beta.EQ.zero) THEN271 DO 20 j = 1,n272 DO 10 i = 1,m273 c(i,j) = zero274 10 CONTINUE275 20 CONTINUE276 ELSE277 DO 40 j = 1,n278 DO 30 i = 1,m279 c(i,j) = beta*c(i,j)280 30 CONTINUE281 40 CONTINUE282 END IF283 RETURN284 END IF285 *286 * Start the operations.287 *288 IF (lsame(side,'L')) THEN289 *290 * Form C := alpha*A*B + beta*C.291 *292 IF (upper) THEN293 DO 70 j = 1,n294 DO 60 i = 1,m295 temp1 = alpha*b(i,j)296 temp2 = zero297 DO 50 k = 1,i - 1298 c(k,j) = c(k,j) + temp1*a(k,i)299 temp2 = temp2 + b(k,j)*a(k,i)300 50 CONTINUE301 IF (beta.EQ.zero) THEN302 c(i,j) = temp1*a(i,i) + alpha*temp2303 ELSE304 c(i,j) = beta*c(i,j) + temp1*a(i,i) +305 + alpha*temp2306 END IF307 60 CONTINUE308 70 CONTINUE309 ELSE310 DO 100 j = 1,n311 DO 90 i = m,1,-1312 temp1 = alpha*b(i,j)313 temp2 = zero314 DO 80 k = i + 1,m315 c(k,j) = c(k,j) + temp1*a(k,i)316 temp2 = temp2 + b(k,j)*a(k,i)317 80 CONTINUE318 IF (beta.EQ.zero) THEN319 c(i,j) = temp1*a(i,i) + alpha*temp2320 ELSE321 c(i,j) = beta*c(i,j) + temp1*a(i,i) +322 + alpha*temp2323 END IF324 90 CONTINUE325 100 CONTINUE326 END IF327 ELSE328 *329 * Form C := alpha*B*A + beta*C.330 *331 DO 170 j = 1,n332 temp1 = alpha*a(j,j)333 IF (beta.EQ.zero) THEN334 DO 110 i = 1,m335 c(i,j) = temp1*b(i,j)336 110 CONTINUE337 ELSE338 DO 120 i = 1,m339 c(i,j) = beta*c(i,j) + temp1*b(i,j)340 120 CONTINUE341 END IF342 DO 140 k = 1,j - 1343 IF (upper) THEN344 temp1 = alpha*a(k,j)345 ELSE346 temp1 = alpha*a(j,k)347 END IF348 DO 130 i = 1,m349 c(i,j) = c(i,j) + temp1*b(i,k)350 130 CONTINUE351 140 CONTINUE352 DO 160 k = j + 1,n353 IF (upper) THEN354 temp1 = alpha*a(j,k)355 ELSE356 temp1 = alpha*a(k,j)357 END IF358 DO 150 i = 1,m359 c(i,j) = c(i,j) + temp1*b(i,k)360 150 CONTINUE361 160 CONTINUE362 170 CONTINUE363 END IF364 *365 RETURN366 *367 * End of CSYMM .368 * AuthorGenerated automatically by Doxygen for LAPACK from the source code. Index- NAME
- SYNOPSIS
- Functions/Subroutines
- Function/Subroutine Documentation
- subroutine CSYMM (character SIDE, character UPLO, integer M, integer N, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex, dimension(ldb,*) B, integer LDB, complex BETA, complex, dimension(ldc,*) C, integer LDC)
- Author
This document was created byman2html,using the manual pages. |
|
|