|
 |
 |
 |
MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm
csyrk.fSection: LAPACK (3) Updated: Fri Nov 4 2016 Index NAMEcsyrk.f - SYNOPSIS Functions/Subroutines subroutine CSYRK (UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC) CSYRK
Function/Subroutine Documentation subroutine CSYRK (character UPLO, character TRANS, integer N, integer K, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex BETA, complex, dimension(ldc,*) C, integer LDC)CSYRK Purpose: CSYRK performs one of the symmetric rank k operations C := alpha*A*A**T + beta*C, or C := alpha*A**T*A + beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
Parameters: - UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of C is to be referenced. UPLO = 'L' or 'l' Only the lower triangular part of C is to be referenced. TRANS
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows: TRANS = 'N' or 'n' C := alpha*A*A**T + beta*C. TRANS = 'T' or 't' C := alpha*A**T*A + beta*C. N
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero. K
K is INTEGER On entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrix A, and on entry with TRANS = 'T' or 't', K specifies the number of rows of the matrix A. K 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 k when TRANS = 'N' or 'n', and is n otherwise. Before entry with TRANS = 'N' or 'n', the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A. LDA
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = 'N' or 'n' then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ). BETA
BETA is COMPLEX On entry, BETA specifies the scalar beta. C
C is COMPLEX array of DIMENSION ( LDC, n ). Before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = 'L' or 'l', the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the 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, n ).
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 169 of file csyrk.f. 169 *170 * -- Reference BLAS level3 routine (version 3.4.0) --171 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --172 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--173 * November 2011174 *175 * .. Scalar Arguments ..176 COMPLEX alpha,beta177 INTEGER k,lda,ldc,n178 CHARACTER trans,uplo179 * ..180 * .. Array Arguments ..181 COMPLEX a(lda,*),c(ldc,*)182 * ..183 *184 * =====================================================================185 *186 * .. External Functions ..187 LOGICAL lsame188 EXTERNAL lsame189 * ..190 * .. External Subroutines ..191 EXTERNAL xerbla192 * ..193 * .. Intrinsic Functions ..194 INTRINSIC max195 * ..196 * .. Local Scalars ..197 COMPLEX temp198 INTEGER i,info,j,l,nrowa199 LOGICAL upper200 * ..201 * .. Parameters ..202 COMPLEX one203 parameter(one= (1.0e+0,0.0e+0))204 COMPLEX zero205 parameter(zero= (0.0e+0,0.0e+0))206 * ..207 *208 * Test the input parameters.209 *210 IF (lsame(trans,'N')) THEN211 nrowa = n212 ELSE213 nrowa = k214 END IF215 upper = lsame(uplo,'U')216 *217 info = 0218 IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,'L'))) THEN219 info = 1220 ELSE IF ((.NOT.lsame(trans,'N')) .AND.221 + (.NOT.lsame(trans,'T'))) THEN222 info = 2223 ELSE IF (n.LT.0) THEN224 info = 3225 ELSE IF (k.LT.0) THEN226 info = 4227 ELSE IF (lda.LT.max(1,nrowa)) THEN228 info = 7229 ELSE IF (ldc.LT.max(1,n)) THEN230 info = 10231 END IF232 IF (info.NE.0) THEN233 CALL xerbla('CSYRK ',info)234 RETURN235 END IF236 *237 * Quick return if possible.238 *239 IF ((n.EQ.0) .OR. (((alpha.EQ.zero).OR.240 + (k.EQ.0)).AND. (beta.EQ.one))) RETURN241 *242 * And when alpha.eq.zero.243 *244 IF (alpha.EQ.zero) THEN245 IF (upper) THEN246 IF (beta.EQ.zero) THEN247 DO 20 j = 1,n248 DO 10 i = 1,j249 c(i,j) = zero250 10 CONTINUE251 20 CONTINUE252 ELSE253 DO 40 j = 1,n254 DO 30 i = 1,j255 c(i,j) = beta*c(i,j)256 30 CONTINUE257 40 CONTINUE258 END IF259 ELSE260 IF (beta.EQ.zero) THEN261 DO 60 j = 1,n262 DO 50 i = j,n263 c(i,j) = zero264 50 CONTINUE265 60 CONTINUE266 ELSE267 DO 80 j = 1,n268 DO 70 i = j,n269 c(i,j) = beta*c(i,j)270 70 CONTINUE271 80 CONTINUE272 END IF273 END IF274 RETURN275 END IF276 *277 * Start the operations.278 *279 IF (lsame(trans,'N')) THEN280 *281 * Form C := alpha*A*A**T + beta*C.282 *283 IF (upper) THEN284 DO 130 j = 1,n285 IF (beta.EQ.zero) THEN286 DO 90 i = 1,j287 c(i,j) = zero288 90 CONTINUE289 ELSE IF (beta.NE.one) THEN290 DO 100 i = 1,j291 c(i,j) = beta*c(i,j)292 100 CONTINUE293 END IF294 DO 120 l = 1,k295 IF (a(j,l).NE.zero) THEN296 temp = alpha*a(j,l)297 DO 110 i = 1,j298 c(i,j) = c(i,j) + temp*a(i,l)299 110 CONTINUE300 END IF301 120 CONTINUE302 130 CONTINUE303 ELSE304 DO 180 j = 1,n305 IF (beta.EQ.zero) THEN306 DO 140 i = j,n307 c(i,j) = zero308 140 CONTINUE309 ELSE IF (beta.NE.one) THEN310 DO 150 i = j,n311 c(i,j) = beta*c(i,j)312 150 CONTINUE313 END IF314 DO 170 l = 1,k315 IF (a(j,l).NE.zero) THEN316 temp = alpha*a(j,l)317 DO 160 i = j,n318 c(i,j) = c(i,j) + temp*a(i,l)319 160 CONTINUE320 END IF321 170 CONTINUE322 180 CONTINUE323 END IF324 ELSE325 *326 * Form C := alpha*A**T*A + beta*C.327 *328 IF (upper) THEN329 DO 210 j = 1,n330 DO 200 i = 1,j331 temp = zero332 DO 190 l = 1,k333 temp = temp + a(l,i)*a(l,j)334 190 CONTINUE335 IF (beta.EQ.zero) THEN336 c(i,j) = alpha*temp337 ELSE338 c(i,j) = alpha*temp + beta*c(i,j)339 END IF340 200 CONTINUE341 210 CONTINUE342 ELSE343 DO 240 j = 1,n344 DO 230 i = j,n345 temp = zero346 DO 220 l = 1,k347 temp = temp + a(l,i)*a(l,j)348 220 CONTINUE349 IF (beta.EQ.zero) THEN350 c(i,j) = alpha*temp351 ELSE352 c(i,j) = alpha*temp + beta*c(i,j)353 END IF354 230 CONTINUE355 240 CONTINUE356 END IF357 END IF358 *359 RETURN360 *361 * End of CSYRK .362 * AuthorGenerated automatically by Doxygen for LAPACK from the source code. Index- NAME
- SYNOPSIS
- Functions/Subroutines
- Function/Subroutine Documentation
- subroutine CSYRK (character UPLO, character TRANS, integer N, integer K, complex ALPHA, complex, dimension(lda,*) A, integer LDA, complex BETA, complex, dimension(ldc,*) C, integer LDC)
- Author
This document was created byman2html,using the manual pages. |
|
|