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