Subroutine */
| 17929 | } /* zher2_ */ |
| 17930 | |
| 17931 | /* Subroutine */ int zher2k_(char *uplo, char *trans, integer *n, integer *k, |
| 17932 | doublecomplex *alpha, doublecomplex *a, integer *lda, doublecomplex * |
| 17933 | b, integer *ldb, doublereal *beta, doublecomplex *c__, integer *ldc) |
| 17934 | { |
| 17935 | /* System generated locals */ |
| 17936 | integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2, |
| 17937 | i__3, i__4, i__5, i__6, i__7; |
| 17938 | doublereal d__1; |
| 17939 | doublecomplex z__1, z__2, z__3, z__4, z__5, z__6; |
| 17940 | |
| 17941 | /* Local variables */ |
| 17942 | static integer i__, j, l, info; |
| 17943 | static doublecomplex temp1, temp2; |
| 17944 | extern logical lsame_(char *, char *); |
| 17945 | static integer nrowa; |
| 17946 | static logical upper; |
| 17947 | extern /* Subroutine */ int xerbla_(char *, integer *); |
| 17948 | |
| 17949 | |
| 17950 | /* |
| 17951 | Purpose |
| 17952 | ======= |
| 17953 | |
| 17954 | ZHER2K performs one of the hermitian rank 2k operations |
| 17955 | |
| 17956 | C := alpha*A*conjg( B' ) + conjg( alpha )*B*conjg( A' ) + beta*C, |
| 17957 | |
| 17958 | or |
| 17959 | |
| 17960 | C := alpha*conjg( A' )*B + conjg( alpha )*conjg( B' )*A + beta*C, |
| 17961 | |
| 17962 | where alpha and beta are scalars with beta real, C is an n by n |
| 17963 | hermitian matrix and A and B are n by k matrices in the first case |
| 17964 | and k by n matrices in the second case. |
| 17965 | |
| 17966 | Arguments |
| 17967 | ========== |
| 17968 | |
| 17969 | UPLO - CHARACTER*1. |
| 17970 | On entry, UPLO specifies whether the upper or lower |
| 17971 | triangular part of the array C is to be referenced as |
| 17972 | follows: |
| 17973 | |
| 17974 | UPLO = 'U' or 'u' Only the upper triangular part of C |
| 17975 | is to be referenced. |
| 17976 | |
| 17977 | UPLO = 'L' or 'l' Only the lower triangular part of C |
| 17978 | is to be referenced. |
| 17979 | |
| 17980 | Unchanged on exit. |
| 17981 | |
| 17982 | TRANS - CHARACTER*1. |
| 17983 | On entry, TRANS specifies the operation to be performed as |
| 17984 | follows: |
| 17985 | |
| 17986 | TRANS = 'N' or 'n' C := alpha*A*conjg( B' ) + |
| 17987 | conjg( alpha )*B*conjg( A' ) + |
| 17988 | beta*C. |