168 SUBROUTINE ssyrk(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
180 REAL A(LDA,*),C(LDC,*)
197 INTEGER I,INFO,J,L,NROWA
202 parameter(one=1.0e+0,zero=0.0e+0)
207 IF (lsame(trans,
'N'))
THEN
212 upper = lsame(uplo,
'U')
215 IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN
217 ELSE IF ((.NOT.lsame(trans,
'N')) .AND.
218 + (.NOT.lsame(trans,
'T')) .AND.
219 + (.NOT.lsame(trans,
'C')))
THEN
221 ELSE IF (n.LT.0)
THEN
223 ELSE IF (k.LT.0)
THEN
225 ELSE IF (lda.LT.max(1,nrowa))
THEN
227 ELSE IF (ldc.LT.max(1,n))
THEN
231 CALL xerbla(
'SSYRK ',info)
237 IF ((n.EQ.0) .OR. (((alpha.EQ.zero).OR.
238 + (k.EQ.0)).AND. (beta.EQ.one)))
RETURN
242 IF (alpha.EQ.zero)
THEN
244 IF (beta.EQ.zero)
THEN
258 IF (beta.EQ.zero)
THEN
277 IF (lsame(trans,
'N'))
THEN
283 IF (beta.EQ.zero)
THEN
287 ELSE IF (beta.NE.one)
THEN
293 IF (a(j,l).NE.zero)
THEN
296 c(i,j) = c(i,j) + temp*a(i,l)
303 IF (beta.EQ.zero)
THEN
307 ELSE IF (beta.NE.one)
THEN
313 IF (a(j,l).NE.zero)
THEN
316 c(i,j) = c(i,j) + temp*a(i,l)
331 temp = temp + a(l,i)*a(l,j)
333 IF (beta.EQ.zero)
THEN
336 c(i,j) = alpha*temp + beta*c(i,j)
345 temp = temp + a(l,i)*a(l,j)
347 IF (beta.EQ.zero)
THEN
350 c(i,j) = alpha*temp + beta*c(i,j)
subroutine xerbla(srname, info)
subroutine ssyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
SSYRK