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