          SEARCH  NEW RPMS  DIRECTORIES  ABOUT  FAQ  VARIOUS  BLOG  DONATE  YUM REPOSITORY    MAN page from openSUSE Leap 42 blas-man-3.5.0-9.1.noarch.rpm

# csyrk.f

Section: LAPACK (3)
Updated: Fri Nov 4 2016
Index

csyrk.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

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 *`

## Author

Generated 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.  