1CGBMV(1)                         BLAS routine                         CGBMV(1)
2
3
4

NAME

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

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

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)
Impressum