1ZGBMV(1) BLAS routine ZGBMV(1)
2
3
4
6 ZGBMV - one of the matrix-vector operations y := alpha*A*x + beta*y,
7 or y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y,
8
10 SUBROUTINE ZGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
11
12 DOUBLE COM‐
13 PLEX
14 ALPHA,BETA
15
16 INTEGER INCX,INCY,KL,KU,LDA,M,N
17
18 CHARACTER TRANS
19
20 DOUBLE COM‐
21 PLEX
22 A(LDA,*),X(*),Y(*)
23
25 ZGBMV performs one of the matrix-vector operations
26
27 where alpha and beta are scalars, x and y are vectors and A is an m by
28 n band matrix, with kl sub-diagonals and ku super-diagonals.
29
30
32 TRANS - CHARACTER*1.
33 On entry, TRANS specifies the operation to be performed as fol‐
34 lows:
35
36 TRANS = 'N' or 'n' y := alpha*A*x + beta*y.
37
38 TRANS = 'T' or 't' y := alpha*A'*x + beta*y.
39
40 TRANS = 'C' or 'c' y := alpha*conjg( A' )*x + beta*y.
41
42 Unchanged on exit.
43
44 M - INTEGER.
45 On entry, M specifies the number of rows of the matrix A. M
46 must be at least zero. Unchanged on exit.
47
48 N - INTEGER.
49 On entry, N specifies the number of columns of the matrix A. N
50 must be at least zero. Unchanged on exit.
51
52 KL - INTEGER.
53 On entry, KL specifies the number of sub-diagonals of the matrix
54 A. KL must satisfy 0 .le. KL. Unchanged on exit.
55
56 KU - INTEGER.
57 On entry, KU specifies the number of super-diagonals of the
58 matrix A. KU must satisfy 0 .le. KU. Unchanged on exit.
59
60 ALPHA - COMPLEX*16 .
61 On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
62
63 A - COMPLEX*16 array of DIMENSION ( LDA, n ).
64 Before entry, the leading ( kl + ku + 1 ) by n part of the array
65 A must contain the matrix of coefficients, supplied column by
66 column, with the leading diagonal of the matrix in row ( ku + 1
67 ) of the array, the first super-diagonal starting at position 2
68 in row ku, the first sub-diagonal starting at position 1 in row
69 ( ku + 2 ), and so on. Elements in the array A that do not cor‐
70 respond to elements in the band matrix (such as the top left ku
71 by ku triangle) are not referenced. The following program seg‐
72 ment will transfer a band matrix from conventional full matrix
73 storage to band storage:
74
75 DO 20, J = 1, N K = KU + 1 - J DO 10, I = MAX( 1, J - KU ), MIN(
76 M, J + KL ) A( K + I, J ) = matrix( I, J ) 10 CONTINUE 20
77 CONTINUE
78
79 Unchanged on exit.
80
81 LDA - INTEGER.
82 On entry, LDA specifies the first dimension of A as declared in
83 the calling (sub) program. LDA must be at least ( kl + ku + 1 ).
84 Unchanged on exit.
85
86 X - COMPLEX*16 array of DIMENSION at least
87 ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' and at
88 least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry,
89 the incremented array X must contain the vector x. Unchanged on
90 exit.
91
92 INCX - INTEGER.
93 On entry, INCX specifies the increment for the elements of X.
94 INCX must not be zero. Unchanged on exit.
95
96 BETA - COMPLEX*16 .
97 On entry, BETA specifies the scalar beta. When BETA is supplied
98 as zero then Y need not be set on input. Unchanged on exit.
99
100 Y - COMPLEX*16 array of DIMENSION at least
101 ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' and at
102 least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry,
103 the incremented array Y must contain the vector y. On exit, Y is
104 overwritten by the updated vector y.
105
106 INCY - INTEGER.
107 On entry, INCY specifies the increment for the elements of Y.
108 INCY must not be zero. Unchanged on exit.
109
110 Level 2 Blas routine.
111
112 -- Written on 22-October-1986. Jack Dongarra, Argonne National
113 Lab. Jeremy Du Croz, Nag Central Office. Sven Hammarling, Nag
114 Central Office. Richard Hanson, Sandia National Labs.
115
116
117
118BLAS routine November 2006 ZGBMV(1)